Planungsrichtlinien für DML-Trigger
Microsoft In SQL Server 2005 werden beim Entwerfen von DML-Triggern zwei Optionen bereitgestellt:
- INSTEAD OF-Trigger werden anstelle der üblichen Triggeraktion ausgeführt. INSTEAD OF-Trigger können auch für Sichten mit mindestens einer Basistabelle definiert werden. In diesem Fall können sie die Aktualisierungstypen erweitern, die von einer Sicht unterstützt werden.
- AFTER-Trigger werden nach der INSERT-, UPDATE- oder DELETE-Anweisung ausgeführt. Das Angeben von AFTER hat dieselben Auswirkungen wie das Angeben von FOR. AFTER-Trigger können nur in Tabellen angegeben werden.
In der folgenden Tabelle werden die Funktionen von AFTER- und INSTEAD OF-Triggern verglichen.
Funktion | AFTER-Trigger | INSTEAD OF-Trigger |
---|---|---|
Anwendbarkeit |
Tabellen |
Tabellen und Sichten |
Anzahl pro Tabelle oder Sicht |
Mehrere Trigger pro auslösende Aktion (INSERT, UPDATE oder DELETE) |
Ein Trigger pro auslösende Aktion (INSERT, UPDATE oder DELETE) |
Kaskadierende Verweise |
Keine Einschränkungen |
INSTEAD OF UPDATE- und DELETE-Trigger sind nicht für Tabellen zulässig, die Ziel von kaskadierenden Einschränkungen für die referenzielle Integrität sind. |
Ausführung |
Nach:
|
Vor:
Anstelle:
Nach:
|
Ausführungsreihenfolge |
Der zuerst und zuletzt auszuführende Trigger kann angegeben werden. |
Nicht anwendbar |
Verweise auf varchar(max)-, nvarchar(max)- und varbinary(max)-Spalten in den inserted- und deleted-Tabellen |
Zulässig |
Zulässig |
Verweise auf text-, ntext- und image-Spalten in den inserted- und deleted-Tabellen |
Nicht zulässig |
Zulässig |
Siehe auch
Konzepte
Verwenden der Tabellen inserted und deleted