一、概念
触发器基于一个表或视图创建,但可以操作多个表或视图。一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行。
触发器的触发操作是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
二前触发器则是当执行到引发触发器执行的语句临界点时,先执行触发器的内容,再执行其他。