网站大量收购独家精品文档,联系QQ:2885784924

网络数据库第4章触发器课件.pptxVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 触发器【部分】 触发器概 触发器的概念 是一种特殊的存储过程,在指定标的数据发生 变化时自动生效。 具体地讲,就是当对某一表进行数据插入( insert)、删除(delete)以及更改(update) 操作时,自动执行做某些处理的SQL 语句。 1 触发器的特点 v特殊的存储过程 v特殊点是不需要由用户维护。当对表作 UPDATE 、INSERT 、DELETE时自动触发执 行。 v保证业务规则和完整性。 2 触发器应用场合 v完成比CHECK约束更复杂的数据约束。 v为保证数据库性能而维护的非规范化数据。 v实现复杂的商业规则。 v评估数据修改前后的表状态,并根据其差异 采取对策。 v一个表中的多个同类触发器(INSERT 、 UPDATE 或 DELETE)允许采取多个不同的 对策以响应同一个修改语句。 3 触发器创建时包含的4个核心要素 v指定触发器的名称。 v指出触发器所作用的表。 v指出引发触发器的操作: INSERT、 UPDATE 或 DELETE多个或者其中的一个。 v编写SQL语句,实现触发器中腰完成的工作。 4 8.1 创建触发器 CREATE TRIGGER 触发器名称 ON {表名 | 视图名} [ WITH ENCRYPTION ] { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ DELETE ] [ , ] [UPDATE ] } AS [ { IF UPDATE ( column ) [ { AND | OR } UPDATE ( column ) ...] } ] SQL 语句 5 创建触发器注意事项 v WITH ENCRYPTION:加密,不看看到原来的SQL脚本 v FOR 或AFTER类型【后触发】 :所有SQL语句都执行完且 执行成功的情况下才能执行触发器。 可以在同一种操作上建 立多个触发器; v INSTEAD OF类型【替代触发】 :仅执行触发器本身,而不 执行引起触发操作的SQL语句。 在同一种操作上只能建立一 个触发器。 v 在一个表上可以建立多个名称不同、类型各异的触发器,每 个触发器可由所有三个操作来引发。 v 大部分Transact-SQL语句都可用在触发器中,但所有的建立 和更改数据库以及数据库对象的语句、所有的DROP语句都 不允许在触发器中使用。 v 在触发器定义中,可以使用IF UPDATE子句来测试在 INSERT和UPDATE语句中是否对指定字段有影响。 v 通常不在触发器中返回任何结果。 v 在触发器中可使用特殊的二个表: INSERTED 、DELETED 6 inserted 表和 deleted 表 在触发器执行时,会产生2个临时表: inserted 表 deleted 表 inserted 表:用于存储 insert 和 update 语句所 影响的副本 delete 表:用于存储 delete 和 update 语句所 影响的副本 7 INSERTED表和DELETED表 说明 v INSERTED和DELETED是与操作表结构一样的临时表, 其驻留内存,可用于测试修改结果等,不能直接修改, 只能在触发器语句中使用。 v INSERTED保存新插入的数据和UPDATE后的数据副本。 v DELETED保存删除的数据和UPDATE更改前数据副本。 v 在用户执行数据的更改操作时, SQL Server自动创建和 管理 v 驻留在内存中。 v 结构同触发器所作用的基本表的结构。 v 只可以被触发器使用。 v 由系统维护,在触发器中像普通表一样查询,不能直接 对这两个临时表中的数据进行更改。 8 删除、插入、更改后数据副本的保存 v在执行DELETE操作时,被删除的数据被保 存到DELETED表中。它和执行操作的基本表 没有相同的行。 v在执行INSERT操作时,新插入的数据同时 被保存到INSERTED表中。基本表中新数据 行的副本。 v在执行UPDATE操作时,先从触发器表中删 除旧行,然后再插入新行。因此,将更改前 的数据保存到DELETED表中。将更改后的数 据行保存到INSERTED表。 9 8.2 后触发型触发器 v使用FOR或AFTER选项定义的触发器为后触 发的触发器,即只有在引发触发器执行的语 句中指定的操作都已成功执行,并且所有的 约束检查也成功完成后,才执行触发器。 v注意:不能在视图上定义AFTER触发器。 10 v CREATE TABLE Student v ( v Sno CHAR(9) PRIMARY KEY, v Sname CHAR(20) , v S

文档评论(0)

碎银几两催人老 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档