Frage

Wir sind mit SQL 2005 und die Try-Catch-Funktionalität alle unsere Fehler innerhalb des DB-Handling zu behandeln. Wir arbeiten derzeit eine .NET-CLR-Funktion auf die Bereitstellung einige WCF Anrufe in der DB zu machen. Dieses WCF Verfahren wird in der CLR geschrieben und dann in SQL zum Einsatz. Wenn ich einen Try-Catch-Block in der CLR-Code setzen, fängt sie den Fehler in Ordnung. scheinen den Fehler Allerdings kann ich nicht in SQL zum Try-Catch-Block zu werfen. SQL scheint zu ignorieren, was ich ihm werfen und fängt den Fehler es findet. Gibt es keine Beziehung zwischen den beiden (das heißt ich nicht von einem zum anderen werfen?)

Wenn ich innerhalb der CLR zur Aufrufprozedur in SQL werfen kann, wird keine spezielle Formatierung erforderlich? Ich habe versucht, einen bestimmten Fall die Fehler zu fangen, die ausgelöst wurde, und dann einen anderen Fehler zu werfen, aber SQL ignorierte meine geworfen Fehler und fing den ursprünglichen Fehler, als ob es die geworfenen Fehler ignoriert.

War es hilfreich?

Lösung

Hier ist eine Blog-Post, dass es bei einer highish Ebene umfasst: Ausnahmebehandlung in SQLCLR

  

Wenn SQL Server einen Benutzer Funktion / Prozedur / Trigger implementiert in CLR (das heißt, verwalteten Code) ausführen, werden wir eine verwaltete Exception-Handler um den Benutzercode installieren. Also, wenn der Benutzer-Code eine Ausnahme ausgelaufen ist, wird der Server es fangen und eine TSQL Ausnahme wirft den Benutzer Ausnahme gewickelt wird.

Dies scheint zu bedeuten, dass es nur funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top