【SQL触发器】类型 FOR 、AFTER、 Instead of

一、AFTER(for)触发器 (操做后)

after触发器是指在操做成功后,所采起的一些动做!spa

好比:下面是我建立好的一个after触发器code

creat trigger [dbo].[T_CaregoryDelete] --触发器的名字为T_CaregoryDelete on [dbo].[caregory] --是caregory类别表的触发器 
after delete --after表明执行删除后执行as后边的语句 

as 

begin 
delete news where caId=(select id from deleted) --激发触发器后我要执行的动做,其中deleted是一个系统默认临时表 

end

 

二、instead of 触发器

对数据的操做只是一个“导火索”而已,真正起做用的是触发器里面的动做;每每这种触发器会有不少分支判断语句在里面,根据不用的条件作不一样的动做!

INSTEAD OF 触发器用来代替一般的触发动做,即当对表进行INSERT、UPDATE 或 DELETE 操做时,系统不是直接对表执行这些操做,而是把操做内容交给触发器,让触发器检查所进行的操做是否正确。如正确才进行相应的操做。所以,INSTEAD OF 触发器的动做要早于表的约束处理。

真正起做用的是触发器里面的动做,接下来是对应触发器的代码blog

CREATE trigger [dbo].[T_CaregoryDelete] on [dbo].[caregory] 
instead of delete 
as 
begin 

delete news where caId=(select id from deleted) 
delete caregory where id=(select id from deleted) 

end

 

 

 

后记:

after触发器是在操做成功后,所采起的一些动做
而对于instead of触发器,真正起做用的是触发器里面的动做!class

相关文章
相关标签/搜索