- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 触发器 12.1触发器概述 触发器实际上就是一种特殊类型的存储过程,它在执行某些特定的T-SQL语句或操作时可以自动执行。 在SQL Server 2000及其之前的版本中,触发器是针对数据表的特殊的存储过程,当这个表发生了Insert、Update或Delete操作时,如果该表有对应操作的触发器,这个触发器就会自动激活执行。在SQL Server 2008中,触发器有了更进一步的功能,在数据表(库)发生Create、Alter和Drop操作时,也会自动激活执行。 12.1触发器概述 触发器的常用功能如下: 1.完成更复杂的数据约束 2.检查所做的SQL所作的操作是否允许 3.修改其它数据表里的数据 4.调用更多的存储过程 5.返回自定义的错误信息 6.更改原本要操作的SQL语句 7.防止数据表结构被更改或数据表被删除 8.审核和控制服务器会话 12.1触发器概述 触发器的类型 1.DML触发器 DML触发器是当数据库服务器中发生数据操作语言(DML)事件时执行的存储过程。 2.DDL触发器 DDL触发器是在响应数据定义语言(DDL)事件时执行的存储过程。DDL触发器一般用于执行数据库中管理任务。如审核和规范数据库操作、防止数据库表结构被修改等。 3.登录触发器 登录触发器将为响应 LOGON 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。 12.2 DML触发器 DML触发器的类型 1.After触发器:这类触发器是在记录已经改变完之后(after),才会被激活执行,它主要是用于记录变更后的处理或检查,一旦发现错误,也可以用Rollback Transaction语句来回滚本次的操作。 2.Instead Of触发器:这类触发器一般是用来取代原本要进行的操作,在记录变更之前发生的,它并不去执行原来SQL语句里的操作(Insert、Update、Delete),而去执行触发器本身所定义的操作。 12.2 DML触发器 inserted表和deleted表 SQL Server为每个DML触发器都定义了两个特殊的表,一个是inserted表,一个是deleted表。这两个表是建在数据库服务器的内存中的,是由系统管理的逻辑表,而不是真正存储在数据库中的物理表。对于这两个表,用户只有读取的权限,没有修改的权限。这两个表的结构与触发器所在数据表的结构是完全一致的,当触发器的工作完成之后,这两个表也将会从内存中删除。 对于插入记录操作来说,inserted表里存放的是要插入的数据; 对于更新记录操作来说,inserted表里存放的是更新后的记录。 对于更新记录操作来说,deleted表里存放的是更新前的记录; 对于删除记录操作来说,deleted表里存入的是被删除的旧记录。 12.2 DML触发器 DML触发器的工作原理。 1.After触发器的工作原理 After触发器是在记录更变完之后才被激活执行的。以删除记录为例:当SQL Server接收到一个要执行删除操作的SQL语句时,SQL Server先将要删除的记录存放在删除表里,然后把数据表里的记录删除,再激活After触发器,执行After触发器里的SQL语句。 2.Instead Of触发器的工作原理 Instead Of触发器与After触发器不同。After触发器是在Insert、Update和Delete操作完成后才激活的,而Instead Of触发器,是在这些操作进行之前就激活了,并且不再去执行原来的SQL操作,而去运行触发器本身的SQL语句。 12.2 DML触发器 创建DML触发器的注意事项 1.CREATE TRIGGER语句必须是批处理中的第一个语句。 2.创建DML触发器的权限默认分配给表的所有者,且不能将该权限转给其他用户。 3.DML触发器为数据库对象,其名称必须遵循标识符的命名规则。 4.虽然DML触发器可以引用当前数据库以外的对象,但只能在当前数据库中创建DML触发器。 5.虽然DML触发器可以引用临时表,但不能对临时表或系统表创建DML触发器。不应引用系统表,而应使用信息架构视图。 6.对于含有用DELETE或UPDATE操作定义的外键的表,不能定义INSTEAD OF DELETE和INSTEAD OF UPDATE触发器。 7.虽然TRUNCATE TABLE语句类似于不带WHERE子句的DELETE 语句(用于删除所有行),但它并不会触发DELETE触发器,因为 TRUNCATE TABLE 语句没有记录。 12.2 DML触发器 创建一个简单的触发器 该触发器的作用是:在教师表中插入一条记录后,发出“你已经成功添加了一个学生信息”的提示信息。 对该触发器的作用进行分析不难发现
您可能关注的文档
- 旅游心理与服务策略 作者 薛英、车秀英、钱小梅 第27次课演示文稿.ppt
- 旅游心理与服务策略 作者 薛英、车秀英、钱小梅 第28次课演示文稿.ppt
- 旅游心理与服务策略 作者 薛英、车秀英、钱小梅 第29次课演示文稿.ppt
- 旅游心理与服务策略 作者 薛英、车秀英、钱小梅 第30次课演示文稿.ppt
- 律师公证制度与实务 王进喜 作者 陈宜 第八章 律师的职业道德和执业行为规范.ppt
- 律师公证制度与实务 王进喜 作者 陈宜 第二十八章 涉外公证.ppt
- 律师公证制度与实务 王进喜 作者 陈宜 第二十二章 公证机构及公证员的法律责任.ppt
- 律师公证制度与实务 王进喜 作者 陈宜 第二十三章 合同公证.ppt
- 律师公证制度与实务 王进喜 作者 陈宜 第二十四章 继承权、遗嘱和遗产分割协议公证.ppt
- 律师公证制度与实务 王进喜 作者 陈宜 第二十章 公证程序.ppt
- 数据库技术与应用——SQL Server 2008 第2版 作者 张建伟 梁树军 金松河 第14章 数据传输.ppt
- 数据库技术与应用——SQL Server2000篇 作者 郭力平 第01章.ppt
- 数据库技术与应用——SQL Server2000篇 作者 郭力平 第02章.ppt
- 数据库技术与应用——SQL Server2000篇 作者 郭力平 第03章.ppt
- 数据库技术与应用——SQL Server2000篇 作者 郭力平 第04章.ppt
- 数据库技术与应用——SQL Server2000篇 作者 郭力平 第06章.ppt
- 数据库技术与应用——SQL Server2000篇 作者 郭力平 第07章.ppt
- 数据库技术与应用——SQL Server2000篇 作者 郭力平 第10章.ppt
- 数据库技术与应用——SQL Server2000篇 作者 郭力平 第11章.ppt
- 数据库技术与应用——SQL Server2000篇 作者 郭力平 第12章.ppt
原创力文档


文档评论(0)