Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

SQL Server 2016: Triggers, Stored Procedures und Funktionen

Reihenfolge der Ausführung von DML-Triggern

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Trigger sollten nicht darauf bauen, in einer bestimmter Reihenfolge ausgeführt zu werden. Dennoch besteht die Möglichkeit, die Trigger-Reihenfolge in engem Rahmen festzulegen.
03:18

Transkript

Dann habe ein andere Skript geladen, das Ihnen zeigen soll, in welche Reihenfolge Trigger ausgeführt werden. Zunächst einmal lösche ich die Datenbank und lege sie neu an, erzeuge wieder eine Tabelle, füge ein paar Zeilen in dieser Tabelle ein und lege eine Reihe von Trigger an und zwar in dem Fall alle sind ein UPDATE-Trigger und die machen nichts anderes als auszugeben, FOR UPDATE Trigger 1, 2, 3 und dann habe ich AFTER UPDATE und hier gebe ich den Text AFTER UPDATE Trigger 1, 2 und 3 aus. Das heißt, diese Batterie an Triggern, lege ich erst einmal an und ich habe dann in meiner Datenbank den ungewöhnlichen Fall, dass ich in der Tabelle gleich eine ganze Batterie an Triggern habe, die eigentlich auch alle für das gleiche Statement stehen nämlich UPDATE in dem Fall. Das kann man nicht erkennen an dem Symbol oder so, lediglich der Name kann mir einen Hinweis geben. Wenn ich jetzt ein UPDATE durchführe, dann sehen Sie, das ist die Reihenfolge in der die Trigger ausgeführt werden. Prinzipiell als Best Practice sollen Sie, wenn Sie mehrere Trigger haben, diese so implementieren, dass sie nicht in einer gewissen Reihenfolge zwingend laufen müssen, sondern quasi in dem Zusammenhang kontextfrei sind, dass sie in einer beliebigen Reihenfolge laufen können, weil Sie nicht zwangsläufig genau steuern können, in welcher Reihenfolge tatsächlich die Ausführung stattfindet. Sie können in gewissen Sinne klein bisschen Einfluss drauf nehmen, indem Sie AFTER UPDATE Trigger benutzen, die werden zum Schluss ausgeführt oder FOR Trigger und die werden halt davor entsprechend dann ausgeführt. Ansonsten ist das erstmal exakt die Reihenfolge, wie die Trigger auch angelegt wurden. Ich kann das ändern, es gibt eine Stored Procedeure, die heißt sys.sp_settriggerorder, der kann ich den Namen eines Triggers übergeben und dann eine Order an der Stelle, aber ich habe hier nur die Möglichkeit First, Last oder None anzugeben, das heißt, ich kann nur den ersten und letzten bestimmen und alle anderen Trigger laufen mehr oder minder in wahlfreier Reihenfolge. Ich kann also, wenn ich das ausführe, noch eine Änderung machen und Sie sehen, dann hat sich die Reihenfolge hier der Ausgabe geändert. Wie gesagt, mein guter Tipp an Sie: Wenn Sie mehrere Trigger haben, dann diese halt so implementieren, dass sie nicht voneinander abhängen und ein Trigger was in einer Tabelle schreibt, in der ein andere Trigger dann nachschaut, welcher Werte vorhanden ist, sondern Sie müssen für sich abgeschlossen unabhängig sein, sodass Sie einen Trigger deaktivieren können, aber auf jeden Fall die Reihenfolge der Trigger nach Wunsch auch anders sein kann oder schlicht und ergreifend weil es so ist, weil möglicherweise ein CREATE SCRIPT in der Datenbank in einer anderen Reihenfolge läuft oder jemand Skripte was die Datenbank-Erstellung betrifft in unterschiedliche Reihenfolge ausführt. Das wären sonst Fehler, die Sie extrem schwer finden, insofern implementieren Sie Ihre Trigger so, dass sie nicht voneinander abhängen und nicht in der Reihenfolge theoretisch aufgerufen werden müssen, in der Sie das entwickeln haben, sondern unabhängig der Reihenfolge sind.

SQL Server 2016: Triggers, Stored Procedures und Funktionen

Nutzen Sie in SQL Server Trigger, gespeicherte Prozeduren, Late Binding, Fehlerbehandlung sowie Scalar- und Tabellenwertfunktionen.

3 Std. 12 min (44 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:08.08.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!