Gibt es eine Möglichkeit, sicherzustellen, dass ein SQL -Serverauslöser ausgeführt wird?

dba.stackexchange https://dba.stackexchange.com/questions/10167

  •  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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top