I trigger sono strumenti molto potenti e pericolosi, in questa situazione possiamo capire quale azione viene compiuta su una tabella di nome 'test':
USE pubs --> Usa il database pubs
GO
/* se esiste all'interno del database l'oggetto 'test' ed è una TABELLA */
IF OBJECTPROPERTY ( object_id('test'),'ISTABLE') = 1
DROP TABLE test /* allora lo elimino */
/* se esiste all'interno del database l'oggetto 'tr_test' ed è un TRIGGER */
IF OBJECTPROPERTY ( object_id('tr_test'),'ISTRIGGER') = 1
DROP TRIGGER tr_test /* allora lo elimino */
GO
/* creo una TABELLA dal nome 'test' */
CREATE TABLE test(i int)
GO
/* creo un TRIGGER dal nome 'tr_test' */
CREATE TRIGGER tr_test ON test FOR INSERT, UPDATE, DELETE AS
IF EXISTS(SELECT * FROM inserted) AND EXISTS(SELECT * FROM deleted)
PRINT 'UPDATE... hai aggiornato uno o più record'
ELSE
IF EXISTS(SELECT * FROM inserted) AND NOT EXISTS(SELECT * FROM deleted)
PRINT 'INSERT... hai inserito uno o più record'
ELSE
PRINT 'DELETE... hai eliminato uno o più record'
GO
/* Istruzioni DML per INSERT , UPDATE e DELETE */
INSERT test values(1)
UPDATE test set i = i + 1
DELETE test