Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Come capire il tipo di operazione DML all'interno di un trigger attivato per INSERT, UPDATE e DELETE

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

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

Link copiato negli appunti

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