Verwendung von SQL Server 2014 Handhabung:TSQL: TRY CATCH Fehler mit Protokollieren von Fehlern in eine Tabelle
ich durch den folgenden Artikel werde, die nützliche Muster für TSQL Fehlerbehandlung beinhaltet:
https://msdn.microsoft.com/en-IN/library/ms175976.aspx
I Ich mag es, Fehler so zu protokollieren, dass ich die Fehler in den Speicherprozeduren meiner Anwendung abfragen, überwachen, verfolgen und überprüfen kann.
Ich dachte daran, eine Tabelle zu erstellen und die Fehlerdetails als Zeile in die Tabelle im CATCH-Block einzufügen; Ich bin jedoch besorgt, dass dies möglicherweise kein gutes Muster ist. ODER es könnte eine eingebaute SQL-Server-Funktion geben, die die von der Anweisung THROW erzeugten Fehler protokollieren kann.
Was wäre der beste Weg, um die Fehler zu protokollieren?
Update 1
Ich sollte erwähnen, dass ich immer XACT_ABORT auf meinem SPs gesetzt:
SET XACT_ABORT, NOCOUNT ON
Ist es sicher davon ausgehen, dass es keine Möglichkeit, Fehler protokollieren, wenn XACT_ABORT eingeschaltet ist?
Update 2
Der SET XACT_ABORT ON wird nach diesem Beitrag:
http://www.sommarskog.se/error_handling/Part1.html#jumpXACT_ABORT
Kann xp_logevent eine bessere Alternative als ein Fehlerprotokoll in eine Log-Tabelle hinzufügen?
http://www.sommarskog.se/error_handling/Part1 .html # jumpXACT_ABORT –
Die XACT_ABORT-Idee kam von diesem Beitrag: http://www.sommarskog.se/error_handling/Part1.html#jumpXACT_ABORT. Das Problem mit sp_trace_generateevent ist, dass es immer einen Profiler-Listener benötigt. Es zeichnet den Fehler nicht auf. Können wir stattdessen xp_logevent verwenden? –
Ich habe viel Respekt für Erland, aber in der Frage von XACT_ABORT stimme ich ihm nicht zu. –