Intead of update&在同一个表上更新后没有被解雇?

时间:2015-06-30 16:20:32

标签: sql-server triggers

我有两个触发器Instead of update而另一个是after update在同一个表上用于相同的任务但仅在更新后触发而不是触发器,而如果我有两个触发后,则两者都在更新时触发。这是怎么回事?

create trigger tr_tmp_instead on emp  
 Instead of update  
 as   
 begin  
 declare @name varchar(50),@message varchar(200)='Updated name Entered Successfully';  
 select @name=d.name from inserted d;  
 insert into tmp_Instead values(getdate(),@message,@name)  
 Print 'Trigger Fired, Updated name Entered Successfully Into tmp_Instead Table..' 

 end


create trigger tr_tmp on emp  
 after update  
 as   
 begin  
 declare @name varchar(50),@message varchar(200)='Updated name Entered Successfully';  
 select @name=d.name from inserted d;  
 insert into tmp values(getdate(),@message,@name)  
 Print 'Trigger Fired, Updated name Entered Successfully Into tmp Table..'  
 end

1 个答案:

答案 0 :(得分:0)

INSTEAD OF触发器会覆盖它定义的默认操作。

当您在UPDATE上拨打emp时,emp并未发生实际更新,AFTER UPDATE ON emp永远不会触发。