Gibt es eine Möglichkeit, sicherzustellen, dass ein SQL -Serverauslöser ausgeführt wird?
-
16-10-2019 - |
Frage
Mein Vorgesetzter zögert, einen Auslöser in einem Prozess zu verwenden, da der Prozess nicht abgeschlossen wäre, wenn es zu einer Netzwerkunterbrechung zum richtigen Zeitpunkt besteht. Enthält SQL Server den Auslöser in der Transaktion des Aufrufvorgangs? Wenn nicht, was ist der beste Weg, dies umzusetzen?
Lösung
Ja. Auslöser treten als implizite verschachtelte Transaktion im Rahmen der Transaktion des Anrufers auf. Der Auslöser wird als Teil dieser Transaktion verpflichtet oder zurückgezogen.
Sehen:
Andere Tipps
Es gibt einige Situationen, in denen Trigger nicht feuern, wie z.
Ein Tisch wird fallen gelassen.
Eine Tabelle wird abgeschnitten.
Einstellungen für verschachtelte und/oder rekursive Auslöser verhindern, dass ein Trigger abbricht.
Auf SQL Server ist ein Auslöser ein Auslöser NICHT garantiert ausführen. Manchmal kann es umgangen werden.
Auch ein Auslöser kann nur falsch sein. In jedem Fall können Sie in Ihrer Datenbank Waisen haben.
Wenn Sie das veröffentlichen, was Sie mit Ihrem Auslöser erreichen möchten, können wir Ihnen möglicherweise helfen, ihn mit Einschränkungen zu implementieren.