数据库技术与应用——SQLServer2008教学课件ppt作者胡国胜第11章触发器课件.pptVIP

数据库技术与应用——SQLServer2008教学课件ppt作者胡国胜第11章触发器课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库技术与应用——SQLServer2008教学课件ppt作者胡国胜第11章触发器课件.ppt

第11章 触发器 触发器是客户/服务器数据库的一种关键特性。使用触发 器,开发人员可以在数据库引擎上稳固地实现复杂的业务规则。 本章介绍触发器的概念、使用方法。 11.1 触发器的概念 触发器是一种特殊类型的存储过程,它与前面章节讲解的 存储过程不同。存储过程可以通过存储过程名来调用,而触发器 是一段能自动执行的程序,不由用户直接调用,不能带有参数, 也没有返回值。当用户对表进行了诸如INSERT、UPDATE、DELETE 等操作时,SQL Server就会自动执行触发器所事先定义好的语句。 11.1.1 触发器的作用 使用触发器的最终目标是为了更好地维护企业的业务规则,实现由主 键和外键所不能保证的复杂参照完整性和数据一致性。除此以外,使用触 发器还有以下的一些功能: 1. 可以强化约束 触发器可以实现比check子句更为复杂的条件约束,check约束在限制 数据输入时不能参照其它表中的数据。 2. 可以实现数据库中多张表的级联运行 触发器可以侦测数据库内的操作,并自动地级联整个数据库的各项内容。 3. 可以跟踪数据变化 触发器可以跟踪数据库内的操作,当数据库发生了未经许可的更新和变 化时,撤销或者回滚操作使数据库修改、更新操作更安全,数据库运行更 稳定。 4. 可以调用存储过程 触发器操作可以通过调用一个或多个存储过程,甚至可以通过调用外部 过程完成相应的操作。 11.1.2 触发器的分类 SQL Server包括三种常规类型的触发器:DML触发器、DDL触发器和 登录触发器。 1. DML触发器 当数据库中发生数据操作语言(DML)事件时将调用DML触发器。DML事 件包括在指定表或视图中修改数据的INSERT语句、UPDATE语句或DELETE语 句。DML触发器可以查询其他表,还可以包含复杂的Transact-SQL语句。 将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。如果检 测到错误(例如,磁盘空间不足),则整个事务即自动回滚。DML触发器 在以下方面非常有用: 1) DML触发器可通过数据库中的相关表实现级联修改。不过,通过级联引 用完整性约束可以更有效地进行这些更改。 2) DML触发器可以防止恶意或错误的INSERT、UPDATE以及DELETE操作,并 强制执行比CHECK约束定义的限制更为复杂的其他限制。与CHECK约束 不同,DML触发器可以引用其他表中的列。 例如,触发器可以使用另一个表中的SELECT比较插入或更新的数据,以及 执行其他操作,如修改数据或显示用户错误信息。 3) DML触发器可以评估数据修改前后表的状态,并根据该差异采取措施。 4) 一个表中的多个同类DML触发器(INSERT、UPDATE或DELETE)允许采取 多个不同的操作来响应同一个修改语句。 用户可以设计以下类型的DML触发器: (1) 后触发器(AFTER触发器) 在执行了INSERT、UPDATE或DELETE语句操作之后执行的是AFTER触发器 。后触发的特点是:若引起触发器执行的语句违反了某种约束,该语句 不会执行,则后触发方式的触发器也不被激活;后触发方式只能创建在 表上,不能创建在视图上;一个表可以有多个后触发方式的触发器。 (2) 替代触发器(INSTEAD OF触发器) 替代触发器的语句仅仅起到激活触发器的作用,一旦激活触发器后该 语句即停止执行,立即转去执行触发器的程序,相当于禁止某种操作。一 个表只能有一个替代触发的触发器;替代触发的触发器可以创建在表上, 也可以创建在视图上。 2. DDL触发器 DDL触发器将激发存储过程以响应事件。但与DML触发器不同的是,它们 不会为响应针对表或视图的UPDATE、INSERT或DELETE语句而激发。相反, 它们将为了响应各种数据定义语言(DDL)事件而激发。这些事件主要与 以关键字CREATE、ALTER和DROP开头的Transact-SQL语句对应。 DDL触发器可用于管理任务,例如审核和控制数据库操作。 如果要执行以下操作,可使用DDL触发器: 1) 要防止对数据库架构进行某些更改。 2) 希望数据库中发生某种情况以响应数据库架构中的更改。 3) 要记录数据库架构中的更改或事件。 仅在运行触发DDL触发器的DDL语句后,DDL触发器才会激发。DDL触 发器无法作为INSTEAD OF触发器使用。 3. 登录触发器 登录触发器将为响应LOG ON事件而激发存储过程。与SQL Server实例 建立用户会话时将引发此事件。登录触发器将在登录的

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档