Condividi tramite


Definizione dei casi in cui deve essere attivato un trigger DML

È possibile specificare due opzioni diverse per controllare i casi in cui deve essere attivato un trigger DML:

  • I trigger AFTER vengono attivati in seguito all'elaborazione dell'azione di trigger (INSERT, UPDATE o DELETE), dei trigger INSTEAD OF e dei vincoli. È possibile richiedere trigger AFTER specificando la parola chiave AFTER o FOR. Poiché le parole chiave FOR e AFTER hanno lo stesso effetto, i trigger DML con la parola chiave FOR sono classificati anche come trigger AFTER.
  • I trigger INSTEAD OF vengono attivati al posto dell'azione di trigger e prima dell'elaborazione dei vincoli. Se nella tabella sono presenti trigger AFTER, tali trigger vengono attivati in seguito all'elaborazione dei vincoli. In caso di violazione dei vincoli, viene eseguito il rollback delle azioni del trigger INSTEAD OF e il trigger AFTER non viene eseguito.

Ogni tabella o vista può includere un trigger INSTEAD OF per ogni azione di trigger (UPDATE, DELETE e INSERT). Una tabella può includere numerosi trigger AFTER per ogni azione di trigger.

Esempi

A. Utilizzo del trigger INSTEAD OF per sostituire l'azione di trigger standard

CREATE TRIGGER TableAInsertTrig ON TableA
INSTEAD OF INSERT
AS ...

B. Utilizzo del trigger AFTER per aumentare l'azione di trigger standard

CREATE TRIGGER TableBDeleteTrig ON TableB
AFTER DELETE
AS ...

C. Utilizzo del trigger FOR per aumentare l'azione di trigger standard

-- This statement uses the FOR keyword to generate an AFTER trigger.
CREATE TRIGGER TableCUpdateTrig ON TableC
FOR UPDATE
AS ...

Vedere anche

Concetti

Progettazione di trigger DML

Guida in linea e informazioni

Assistenza su SQL Server 2005