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