Hallo ist möglich, zwischen DML-Befehle / Operationen (Einfügen, Löschen, Aktualisieren) auf Trigger Body ?, Ich versuche, etwas T-SQL schnippen, um mich besser zu verstehen:
%Vor%Danke,
Ich zeige Ihnen eine einfache Möglichkeit, dies in SQL Server 2000 oder 2005 zu überprüfen (Sie haben vergessen, zu erwähnen, welche Version Sie verwenden), aber im Allgemeinen stimme ich Remus zu, dass Sie diese in separate Trigger aufteilen sollten:
%Vor%Beachten Sie, dass dies möglicherweise aufgrund der Komplexität, die MERGE in SQL Server 2008 einführt, nicht perfekt aufwärtskompatibel ist. Weitere Informationen finden Sie in diesem Connect-Element: Ссылка
Wenn Sie also in Zukunft SQL Server 2008 und MERGE verwenden möchten, ist dies ein Grund mehr, den Trigger für jede Art von DML-Operation in einen Trigger aufzuteilen.
Sie können die inserted
und deleted
Tabellen verwenden, um zu sehen, welche Änderungen vorgenommen wurden zum Tisch gemacht.
Bei einem UPDATE enthält die Tabelle deleted
die alte Version der Zeile und inserted
die neue Version.
DELETE und INSERT verwenden ihre eigene Tabelle wie erwartet.
Sie können drei verschiedene Trigger haben, einen für INSERT für UPDATE einen für DELETE. Da jeder Trigger unterschiedlich ist, ist keine Schaltlogik erforderlich.
Ich denke, der generelle Weg dahin ist, einen Trigger für jede Aktion zu erstellen:
%Vor%Tags und Links triggers sql-server dml