SQL SERVER:触发器概述(42)

SQL SERVER:触发器概述(42)一、触发器:1、触发器概述:触发器是一种特殊类型的存储过程,通过事件进行触发来自动调用执行SQL语句或存储过程。与存储过程不同的是,它是通过事件触发,而存储过程是通过调用存储过程名来执行。

欢迎大家来到IT世界,在知识的湖畔探索吧!

一、触发器:

1、触发器概述:触发器是一种特殊类型的存储过程,通过事件进行触发来自动调用执行SQL语句或存储过程。与存储过程不同的是,它是通过事件触发,而存储过程是通过调用存储过程名来执行。

2、触发器分类:

1)DDL触发器:叫做数据定义语言触发器,在运行触发 DDL 触发器的 DDL 语句后,DDL 触发器才会激发。DDL 触发器无法作为 INSTEAD OF 触发器使用。 对于影响局部或全局临时表和存储过程的事件,不会触发 DDL 触发器。

2)DML触发器:叫做数据操作语言触发器,在对表进行UPDATE、DELETE、INSERT操作时、系统会自动调用该表上对应的触发器,进而执行事先定义好的SQL语句或存储过程。同时,将触发器和触发它的语句作为可在触发器内回滚的单个事务对待, 如果检测到错误(例如,磁盘空间不足),则整个事务即自动回滚。

3、触发器应用场景:

1)数据验证和完整性约束:通过触发器可以实现对数据的验证和完整性约束,例如检查数据的有效性、确保参照完整性等。

2)数据变化记录:触发器可以用于记录数据的变化历史,例如记录数据的修改时间、修改人等信息,方便数据的追溯和审计。

3)数据自动更新:通过触发器可以实现数据的自动更新,例如根据某个字段的变化自动更新其他相关字段的值。

4)业务规则的强制执行:触发器可以用于实现业务规则的强制执行,例如限制某个字段的取值范围、禁止某些操作等。

4、DML触发器类型:

1)AFTER 触发器:在执行 INSERT、UPDATE、DELETE 语句的操作之后执行 AFTER 触发器。 如果违反了约束,则永远不会执行 AFTER 触发器;因此,这些触发器不能用于任何可能防止违反约束的处理;

2)INSTEAD OF 触发器:在执行 INSERT、UPDATE、DELETE 语句的操作之前执行 INSTEAD OF 触发器,当符合预定条件时,则执行,否则回滚该事务。

5、INSERTED表 和 DELETED表:触发器有两张特殊的表,即INSERTED 和 DELETED。这两张表是逻辑表或虚表,由系统在内存中创建,不会存储在数据库中,且其是只读的。这两张表的结果总是与触发器应用的表的结构完全相同,当触发器完成后,这两张表就会被删除。INSERTED 表的数据是插入或修改后的数据,DELETED 表的数据是更新前或删除的数据。它们具体存储的数据与对应表数据操作如下:

表操作

INSERTED逻辑表

DELETE逻辑表

新增记录(INSERT)

存放增加的记录

删除记录(DELETE)

存放被删除的记录

修改记录(UPDATE)

存放更新后记录

存放更新前的记录

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/76260.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信