I have the following code in a SQL Server 2005 trigger:
CREATE TRIGGER [myTrigger] ON [myTable]
FOR UPDATE,DELETE
AS
BEGIN
DECLARE @OperationType VARCHAR(6)
IF EXISTS(SELECT 1 FROM INSERTED)
BEGIN
SET @OperationType='Update'
END
ELSE
BEGIN
SET @OperationType='Delete'
END
My question: is there a situation in which @OperationType is not populated correctly? E.G.: the data in the table is changed by a bunch of UPDATE/DELETE statements, but the trigger is not fired once by every one of them?
Do you have a better way to determine if the trigger was fired by an UPDATE or DELETE statement?