在Sql Server触发器中判断操作是Insert还是Update还是Delete

在Sql Server触发器中判断操作是Insert还是Update还是Delete:

DECLARE
    @IsInsert bit,
    @IsUpdate bit,
    @IsDelete bit

IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)
    SET @IsInsert = 1
ELSE
    SET @IsInsert = 0

IF EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
    SET @IsUpdate = 1
ELSE
    SET @IsUpdate = 0

IF NOT EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
    SET @IsDelete = 1
ELSE
    SET @IsDelete = 0 
create   trigger   Update_Del   on   Table  
  for   update,delete  
  as  
  if   not   exists(select   1   from   inserted)  
  begin   /*inserted表无记录,是删除*/  
  end  
  else    
  begin   /*是更新*/   end  
  go 

posted @ 2011-03-12 15:00  学习札记  阅读(1308)  评论(0编辑  收藏  举报