In den meisten Produktionsszenarien tendiere ich dazu, eine benutzerdefinierte Fehlerberichterstattungskomponente als Teil der Lösung in der Datenbankebene bereitzustellen. Nichts Besonderes, nur eine Handvoll Protokolltabellen und einige gespeicherte Prozeduren, die den Fehlerprotokollierungsprozess verwalten.
Alle gespeicherten Prozedurcode, der auf einem Produktionsserver ausgeführt wird, wird dann mithilfe der TRY-CATCH-BLOCK-Funktion gekapselt, die in SQL Server 2005 und höher verfügbar ist.
Dies bedeutet, dass in dem unwahrscheinlichen Fall, dass eine bestimmte gespeicherte Prozedur fehlschlagen sollte, die Details des aufgetretenen Fehlers und die gespeicherte Prozedur, die ihn generiert hat, in einer Protokolltabelle aufgezeichnet werden. Ein einfacher Aufruf einer gespeicherten Prozedur wird innerhalb des CATCH BLOCKs ausgeführt, um die relevanten Details aufzuzeichnen.
Die Grundlagen für diese Umsetzung sind in Bücher here
Sollten Sie tatsächlich online erklärt, Sie leicht diese Implementierung weiter ausbauen können, zum Beispiel per E-Mail Benachrichtigung an einen DBA enthalten oder sogar eine SMS-Nachricht, abhängig werden könnte gesendet über die Schwere des Fehlers.
Eine Implementierung dieser Art stellt sicher, dass, wenn Ihre gespeicherte Prozedur Fehler nicht gemeldet hat, es natürlich erfolgreich war.
Sobald Sie über ein einfaches und robustes Framework verfügen, können Sie Ihre Basisimplementierung einfach duplizieren und auf anderen Produktionsservern/Anwendungsplattformen implementieren.
Nichts besonderes hier, nur einfache Fehlerprotokollierung und Berichterstattung, die funktioniert.
Wenn auf der anderen Seite Sie auch die erfolgreiche Ausführung von gespeicherten Prozeduren aufzeichnen müssen, dann kann eine ähnliche Lösung entwickelt werden, die Log-Tabelle/s enthält.
Ich denke, diese Frage für eine Blog-Post aus schreit ...... ..
die gespeicherte Prozedur mehrmals täglich ausgeführt werden sollen tun, oder einfach nur einmal? – fARcRY
viele Male ..... – odiseh