数据库
首页 > 数据库> > SQL server 的 instead of与 after触发器区别

SQL server 的 instead of与 after触发器区别

作者:互联网

(注:如果小弟有啥地方理解错误,还请各位大佬指出,以便更正。)

instead of 

如同单词一样,可以理解为代替的意思,当你在一张表上定义了这样的触发器后,如果对表做insert、update、delete操作时触发了所定义的触发器,他就会直接转到触发器去执行触发器里定义的事件,不在执行之前做的insert、update、delete操作了;

例子如下:(往教师表中添加一个instead of 新增操作的触发器,如果触发器生效,则直接执行触发器里面的内容,就不在往教                        师表添加任何数据,而是直接执行学生表添加的操作。)

insert into teacher values(newid(),张三)  

create trigger tgr_XXX_insert
on 表名
     instead of insert --插入触发
as

begin
    insert into Student values(newid(),小白)  

end

 

after

例子如下:(往教师表中添加一个after 新增操作的触发器,如果触发器生效,首先是执行教师表的添加,之后再去执行触发器                          里面的内容,也就是往学生表中添加数据。)

insert into teacher values(newid(),张三)  

create trigger tgr_XXX_insert
on 表名
    after insert --插入触发
as

begin
    insert into Student values(newid(),小白)  

end

他的作用就是当你在一张表上定义了这样的触发器后,如果对表做insert、update、delete操作时触发了所定义的触发器,它并不会直接去执行触发器,而是先操作了你对表的操作后,再去执行触发器定义的事件;

 

标签:insert,触发器,into,after,server,添加,newid,SQL,instead
来源: https://blog.csdn.net/qq_34423736/article/details/87913511