Saber si dispara Insert o Update

08/09/2009 - 22:41 por herba98 | Informe spam
Hola amigos, estoy creando un Trigger "AFTER INSERT, UPDATE", y
quisiera hacer ciertas cosas cuando se dispare por un Insert y otras
cuando detecte Update, como puedo detectar el evento que disparò el
trigger? Columns_Updated() devuelve False cuando es Insert? asi como
existe inserted.xxx no existe updated.xxx ??

HB
 

Leer las respuestas

#1 Ruben Garrigos
08/09/2009 - 23:44 | Informe spam
Hola herba98,

Lo típico para detectar en estos casos es comparar si existen filas o no
en las tablas inserted/deleted. Tambien recuerda siempre comprobar si hay
alguna fila afectada. Como ejemplo te dejo este código para que lo adaptes
a tu caso:

CREATE TRIGGER trigger1 ON Tabla1 FOR INSERT, UPDATE, DELETE
AS
IF @@rowcount = 0 RETURN

IF EXISTS(SELECT * FROM inserted)
IF EXISTS(SELECT * FROM deleted)
PRINT 'UPDATE'
ELSE
PRINT 'INSERT'
ELSE
PRINT 'DELETE'

Un saludo,

Rubén Garrigós
Solid Quality Mentors

Blog: http://blogs.solidq.com/es/elrincondeldba

Hola amigos, estoy creando un Trigger "AFTER INSERT, UPDATE", y
quisiera hacer ciertas cosas cuando se dispare por un Insert y otras
cuando detecte Update, como puedo detectar el evento que disparò el
trigger? Columns_Updated() devuelve False cuando es Insert? asi como
existe inserted.xxx no existe updated.xxx ??

HB

Preguntas similares