SQL Server 触发器
触发器定义
- 触发器是一种特殊类型的存储过程,可以理解为对数据库的某个表进行操作时会自动执行的存储过程,触发器可以指定其被调用的条件,只要满足条件,触发器就会被调用
触发器条件
- insert
- update
- delete
何时触发
- instead of :在sql语句执行前触发
- after: sql语句执行完成后再触发
特殊表
-
触发器有两个特殊的表:插入表(inserted表)和删除表(deleted表)。这两张是逻辑表也是虚表。有系统在内存中创建者两张表,不会存储在数据库中。而且两张表的都是只读的,只能读取数据而不能修改数据。这两张表的结果总是与被改触发器应用的表的结构相同。当触发器完成工作后,这两张表就会被删除。Inserted表的数据是插入或是修改后的数据,而deleted表的数据是更新前的或是删除的数据
-
Update数据的时候就是先删除表记录,然后增加一条记录。这样在inserted和deleted表就都有update后的数据记录了。注意的是:触发器本身就是一个事务,所以在触发器里面可以对修改数据进行一些特殊的检查。如果不满足可以利用事务回滚,撤销操作
实例1:
- 删除用户表中的用户后,(触发)删除其他库中的存放的密码表中的用户
use XXX
go
create trigger Tri_DeleteUser on User after delete
as
delete from XXX.dbo.UserAccount where guid = (select guid from deleted)
本文来自博客园,作者:弩哥++,转载请注明原文链接:https://www.cnblogs.com/bangbangzoutianya/p/15138887.html