第13章 触发器 SQL ppt 教学课件.pptVIP

  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文档。上传文档
查看更多
第13章 触发器 SQL ppt 教学课件

第13章 触发器 在前面介绍了编写批处理的方法,但要让这些批处理保持永久有效,就要利用到存储过程和触发器了。 存储过程的存在独立于表,触发器的利用则与表紧密结合。 用户可以使用存储过程来完善应用程序,使应用程序更有效率;可以利用触发器来实现复杂的业务规则,更有效地实施数据完整性。 概 述 Microsoft SQL Server 2000 触发器是一类特殊的存储过程,被定义为在对表或视图发出 UPDATE、INSERT 或 DELETE 语句时自动执行。触发器是功能强大的工具,使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以扩展 SQL Server 约束、默认值和规则的完整性检查逻辑,但只要约束和默认值提供了全部所需的功能,就应使用约束和默认值。 当有操作影响到触发器保护的数据时,触发器就自动发生。因此,触发器是在特定表上进行定义的,该表也称为触发器表。当有操作针对触发器表时,例如在表中插入、删除、更新数据时,如果该表有相应操作类型的触发器,那么触发器就自动触发执行。因为触发器在操作有效之后才能执行,所以在修改中他们代表“最后的动作”。假如导致触发器的一个请求失败,SQL Server系统将拒绝更新数据,并且对那些应用程序返回一个错误消息。 表可以有多个触发器。CREATE TRIGGER 语句可以与 FOR UPDATE、FOR INSERT 或 FOR DELETE 子句一起使用,指定触发器专门用于特定类型的数据修改操作。当指定 FOR UPDATE 时,可以使用 IF UPDATE (column_name) 子句,指定触发器专门用于具体某列的更新。 【存储过程】 存储过程是一组 Transact-SQL 语句,在一次编译后可以执行多次。因为不必重新编译 Transact-SQL 语句,所以执行存储过程可以提高性能。 【触发器】 触发器是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行。 CREATE PROCEDURE 或 CREATE TRIGGER 语句不能跨越批处理。即存储过程或触发器始终只能在一个批处理中创建并编译到一个执行计划中。 触发器既然是一种特殊类型的存储过程,那么它与存储过程也有一些区别。例如,存储过程可以由用户直接调用执行,但是触发器不能被直接调用执行。 在SQL Server 中一张表可以有多个触发器。用户可以针对INSERT、UPDATE或DELETE语句分别设置触发器,也可以针对一张表上的特定操作设置多个触发器。触发器里可以容纳非常复杂的Transact-SQL 语句。但是不管触发器所进行的操作有多复杂,触发器都只作为一个独立的单元被执行,被看做是一个事务。如果在执行触发器的过程中发生了错误,则整个事务将会自动回滚。 触发器在服务器将特定的操作(INSERT、UPDATE或DELETE )执行结束后才执行。 使用触发器的最终目的是更好地维护企业的业务规则。在实际运用中,触发器主要提供以下功能: ● 级联修改数据库中的所有相关表。如:publishers表中的内容被删除后,将自动对titles、titleauthor等表的修改。 ● 撤销或回滚违反引用完整性的操作,防止非法修改数据。 ● 执行比检查约束CHECK更复杂的约束操作。 ● 查找在数据修改前后,表状态之间的差别,并根据差别来分别采取相应的措施。 ● 在一张表同一类型的操作(INSERT、UPDATE或DELETE )上设置多个触发器,从而可以针对同样的修改语句执行不同的多种操作。 创建触发器 创建触发器,触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。 Microsoft SQL Server 允许为任何给定的 INSERT、UPDATE 或 DELETE 语句创建多个触发器。 创建触发器前应考虑下列问题: CREATE TRIGGER 语句必须是批处理中的第一个语句。将该批处理中随后的其它所有语句解释为 CREATE TRIGGER 语句定义的一部分。 创建触发器的权限默认分配给表的所有者,且不能将该权限转给其他用户。 触发器为数据库对象,其名称必须遵循标识符的命名规则。 虽然触发器可以引用当前数据库以外的对象,但只能在当前数据库中创建触发器。 虽然不能在临时表或系统表上创建触发器,但是触发器可以引用临时表。不应引用系统表,而应使用信息架构视图。 在含有用 DELETE 或 UPDATE 操作定义的外键的表中,不能定义 INSTEAD OF 和 INSTEAD OF UPDATE 触发器。 虽然 TRUNCATE TABLE 语句类似于没有 WHERE 子句(用于删除行)的 DELETE 语句,但它并不会引发 DE

您可能关注的文档

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档