SQL Server Triggerwechsel Einfügen, Löschen, Aktualisieren

7

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,

    
Angel Escobedo 17.11.2009, 20:58
quelle

4 Antworten

18

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.

    
Aaron Bertrand 17.11.2009, 21:12
quelle
7

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.

    
Andomar 17.11.2009 21:16
quelle
6

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.

    
Remus Rusanu 17.11.2009 21:05
quelle
3

Ich denke, der generelle Weg dahin ist, einen Trigger für jede Aktion zu erstellen:

%Vor%     
Ryan Elkins 17.11.2009 21:15
quelle

Tags und Links