Linee guida per la pianificazione di trigger DML
Sono presenti due opzioni per la progettazione di trigger DML:
I trigger INSTEAD OF vengono eseguiti in sostituzione della normale azione di trigger. Possono inoltre essere definiti in viste con una o più tabelle di base e, in tal caso, estendono i tipi di aggiornamenti supportati da una vista.
I trigger AFTER vengono eseguiti dopo l'esecuzione dell'azione associata all'istruzione INSERT, UPDATE o DELETE. Specificare AFTER equivale a specificare FOR. È possibile specificare i trigger AFTER solo nelle tabelle.
Nella tabella seguente è riportato un confronto tra le funzionalità dei trigger AFTER e INSTEAD OF.
Funzione |
Trigger AFTER |
Trigger INSTEAD OF |
---|---|---|
Applicabilità |
Tabelle |
Tabelle e viste |
Quantità per tabella o vista |
Multiplo per azione di trigger (UPDATE, DELETE e INSERT) |
Singolo per azione di trigger (UPDATE, DELETE e INSERT) |
Riferimenti di propagazione |
Nessuna restrizione |
I trigger INSTEAD OF UPDATE e DELETE non sono consentiti in tabelle che rappresentano le destinazioni di vincoli di integrità per operazioni referenziali di propagazione |
Esecuzione |
Dopo:
|
Prima di:
In sostituzione di:
Dopo:
|
Ordine di esecuzione |
È possibile specificare la prima e l'ultima esecuzione |
Non applicabile |
Riferimenti di colonna varchar(max), nvarchar(max) e varbinary(max) in tabelle inserted e deleted |
Consentiti |
Consentiti |
Riferimenti di colonna text, ntext e image in tabelle inserted e deleted |
Non consentiti |
Consentiti |