sqlserver触发器

触发器是一种特殊的存储过程,它不需要用户去用过事件去主动触发,而是在事件进行出发而自动调用的。
触发器分 DDL DML 两种。
DDL 是一种为了响应各种数据定义语言 (DDL) 事件而激发的触发器。主要是以 DROP ALTER CREATE 这种关键字来激发的。
DML 是一种为了响应各种数据操纵语言 (DML) 事件而激发的触发器。主要是以 INSERT DELETE UPDATE 这种关键字来激发的。

DML 触发器分为 AFTER INSTEAD OF 两种:
AFTER 触发器只有被 INSERT 触发器、 UPDATE 触发器、 DELETE 触发器 之后触发某一触发器触法之后才能触发。且只能定义在表上。
instead of 触发器表示并不执行其定义的操作( insert update delete )而仅是执行触发器本身。既可以在表上定义 instead of 触发器,也可以在视图上定义。
触发器由两个名叫 INSERT DELETE 的虚表,有系统在内存中创建者两张表,不会存储在数据库中。而且两张表的都是只读的,只能读取数据而不能修改数据。这两张表的结果总是与被改触发器应用的表的结构相同。当触发器完成工作后,这两张表就会被删除。
对表的操作
Inserted 逻辑表
Deleted 逻辑表
增加记录( insert
存放增加的记录
删除记录( delete
存放被删除的记录
修改记录( update
存放更新后的记录
存放更新前的记录
Update 数据的时候就是先删除表记录,然后增加一条记录。这样在 inserted deleted 表就都有 update 后的数据记录了。注意的是:触发器本身就是一个事务,所以在触发器里面可以对修改数据进行一些特殊的检查。如果不满足可以利用事务回滚,撤销操作。
INSERT 触发器

Update 数据的时候就是先删除表记录,然后增加一条记录。这样在 inserted deleted 表就都有 update 后的数据记录了。注意的是:触发器本身就是一个事务,所以在触发器里面可以对修改数据进行一些特殊的检查。如果不满足可以利用事务回滚,撤销操作。
INSERT 触发器





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值