SQL Server 2016: Triggers, Stored Procedures und Funktionen

Auf veränderte Werte zugreifen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Über die virtuellen Tabellen INSERTED und DELETED kann ein Trigger auf die veränderten Daten zugreifen.
03:00

Transkript

Über die virtuellen Tabellen 'INSERTED' und 'DELETED' können Sie zur Laufzeit des Triggers herausfinden, wie sich die Daten konkret geändert haben. Wird zum Beispiel ein INSERT-Statement ausgeführt, so enthält die INSERTED- Tabelle die neuen Zeilen, währen die DELETED-Tabelle leer ist, sie existiert, aber sie ist leer. Wird ein DELETE-Statement ausgeführt, so ist die INSERTED-Tabelle leer, dafür aber finden Sie in der DELETED-Tabelle alle gelöschten Zeilen. Bei einer UPDATE-Anweisung ist sowohl in der INSERTED etwas zu finden, als auch in der DELETED. Zwar in der INSERTED finden Sie die neuen Werte, nachdem das Update gelaufen ist und in der DELETED finden Sie entsprechend die alten Originalwerte und können diese entsprechend dort abfragen. Um Ihnen INSERTED und DELETED zu demonstrieren, habe ich das nächste Skript geladen. Ich lege zunächst die Datenbank an, dann wieder die obligatorische Tabelle und zum Schluss einen Trigger, der auch INSERT, DELETE und UPDATE abdeckt und nur aus zwei Zeilen Code besteht, nämlich den Inhalt von INSERTED und DELETED ausgibt. So! Dann kann ich zum Beispiel alle INSERT-Anweisungen laufen lassen. Sie sehen die Rückgabe sieht so aus, dass ich sechs Zeilen von der INSERTED- Tabelle, das ist die erste Abfrage, bekomme, und keine einzige von der DELETED. Das macht Sinn, schließlich werden auch nur Zeilen eingefügt. Dann ändere ich Daten und dann sehe ich in der ersten, also in der INSERTED-Tabelle, den neuen Wert und in der zweiten, der DELETED, den alten Wert und ändert hier die TraceID von 22 auf 99. Wenn ich das mehrfach ausführe, sieht das Ergebnis so aus, die Datensätzen sind in dem Fall gleich. Für den SQL-Server ist das trotzdem eine Änderung. Aus Performance Gründen prüft er natürlich nicht, ob sich wirklich was ändert, sondern stellt lediglich fest, UPDATE-Anweisung auf dieser Tabelle, es gibt einen Trigger, also ist das die INSERTED- und das die DELETED-Tabelle. Wenn ich dann eine Zeile lösche, ist die INSERTED-Tabelle leer. Dafür habe ich diese eine Zeile in der DELETED-Tabelle. Wenn ich das jetzt ein paar Mal mache, habe ich zum Schluss nichts mehr zu löschen und dann ist konsequenterweise auch die DELETED-Tabelle leer, weil es nichts gibt. Wenn ich hier zum Beispiel jetzt ein UPDATE versuche, dann sind auch INSERTED und DELETED leer, weil es gibt schlicht keine Daten mehr, die aktualisiert werden können. Damit können Sie also sehen, welche Inhalte zu welchem Zeitpunkt sich in den virtuellen Tabellen INSERTED und DELETED befinden.

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!