T-SQL之触发器

一、概念

触发器基于一个表或视图创建,但可以操作多个表或视图。一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行。

触发器的触发操作是insert、delete、update,执行中涉及到两个迁移表(虚表、临时表,触发器执行完自动销毁):inserted,deleted。

触发器与存储过程的区别:无论是哪类存储过程(自动运行存储过程除外)都需要调用才可执行,而触发器不需要调用,达到触发条件即可触发

触发器分前触发器和后触发器,后触发器执行过程:当执行到引发触发器执行的语句临界点时,继续执行语句,然后再执行触发器内的语句。应用较多

一个能很好的说明上图的例子:题的要求为如果在student表中更改了学生的sno, 希望该生的选课信息表sc中与这个学生相关的记录也进行一致性修改。

create trigger updatecascade on student
after update
as  begin
 if update(sno)
 begin
  declare @sno_new char(10),@sno_old char(10)
  select @sno_new=sno from inserted
  select @sno_old=sno from deleted
  update sc set sno=@sno_new where  sno=@sno_old
 end
end

二前触发器则是当执行到引发触发器执行的语句临界点时,先执行触发器的内容,再执行其他。

原文地址:https://www.cnblogs.com/mymindview/p/3451427.html