sqlserver 触发器 判断是插入 删除 还是修改 的例子

create TRIGGER [updatetest] ON [dbo].[TEST] 
FOR INSERT, UPDATE, DELETE 
AS
begin
 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  
 
if  (@IsUpdate = 1 )
   PRINT 
' updated  '
 
if  (@IsInsert = 1 )
   PRINT 
' insert  '
 
if  (@IsDelete = 1 )
   PRINT 
' delete  '
 
end

 
 
 
inserted、deleted: 

这是两个虚拟表,inserted 保存的是 insert 或 update 之后所影响的记录形成的表,deleted 保存的是 delete 或 update 之前所影响的记录形成的表

你可能感兴趣的:(delete,insert,sqlserver)