Transact-SQL: Rilevare se un trigger è stato attivato da UPDATE, INSERT o DELETE
ALTER TRIGGER [dbo].[ilmiotrigger] ON [dbo].[lamiatabella] AFTER INSERT,DELETE,UPDATE AS BEGIN SET NOCOUNT ON; /* Tipo di operazione eseguita: 0: UPDATE 1: INSERT 2: DELETE */ DECLARE @op_type INT /* Individuo quale tipo di query è stata fatta UPDATE/DELETE/INSERT */ IF EXISTS (SELECT * FROM inserted) AND EXISTS (SELECT * FROM deleted) BEGIN /* UPDATE*/ SET @op_type = 0 END ELSE BEGIN IF EXISTS (SELECT * FROM inserted) BEGIN /* INSERT */ SET @op_type = 1 END ELSE BEGIN /* DELETE */ SET @op_type = 2 END END END |
Leave a Reply