数据库原理与技术(第二版)程学先电子教案 第6章.pptVIP

数据库原理与技术(第二版)程学先电子教案 第6章.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文档。上传文档
查看更多
数据库原理与技术 (第二版) 程学先 程传慧 曾 玲 陈永辉 郑秋华 杨晓艳 IF @Country = Mexico BEGIN Update CustomersMex SET CustomersMex.Phone = Inserted.Phone FROM CustomersMex JOIN Inserted ON CustomersMex.CustomerID = Inserted.CustomerID END (4)通过更新视图,测试触发器: Update CustomersView SET Phone = 030-007xxxx Where CustomerID = ALFKI Select CustomerID, Phone FROM CustomersView Where CustomerID = ALFKI Select CustomerID, Phone FROM CustomersGer Where CustomerID = ALFKI 触发器的应用 INSERT触发器 在触发器中如果带有FOR INSERT子句,属于INSERT类触发器。 INSERT触发器在向数据库插入数据之后触发,执行触发器所定义的操作,可以对新插入数据进行检查,拒绝某些数据的录入。在插入记录的同时,还将生成inserted表,记录副本将插入该表。 【例】 假设在数据库 waremanage中有表commodity,求建立触发器commodityinsert,检查新插入的每条记录,删除其中unitprice2000的记录。 CREATE TRIGGER commodityinsert ON commodity FOR INSERT AS DELETE FROM commodity WHERE unitprice2000 DELETE触发器 在触发器中如果带有FOR DELETE子句,属于DELETE类触发器。 它在数据库删除数据之后触发,执行触发器所定义的操作,可以对被删除数据的相关数据进行检查并执行同步的操作。 【例】对定义了删除型触发器的commodity表进行删除操作,首先检查要删除几行,如果将删除多行则返回错误信息。 CREATE TRIGGER commoditydelete ON commodity FOR DELETE AS IF @@rowcount = 0 RETURN IF @@rowcount 1 BEGIN ROLLBACK TRANSACTION RAISERROR(“You Can Only Delete Information Ar One Time”, 16, 1) END RETURN UPDATE触发器 在触发器中如果带有FOR UPDATE子句,属于更新类触发器。 它在修改数据之后触发,可以对被修改的数据进行检查。 【例】 求建立触发器commodityupdate,检查所修改的数据,如果改后unitprice比原来低,则恢复原来数据。 CREATE TRIGGER commodityupdate ON commodity FOR UPDATE AS UPDATE commodity SET commodity. unitprice=deleted.unitprice FROM commodity,deleted WHERE commodity.waruname =deleted.waruname AND commodity. unitpricedeleted.unitprice 嵌套触发器 当某一触发器执行时同时触发另外一个触发器称之为触发器嵌套 。 在SQL Server 中触发器能够嵌套至32层。 可使用嵌套触发器执行如保存前一触发器所影响记录的一个备份等这一类工作 。 【例】 在commodity上另建一个触发器commodityupdate1,保存由commodityupdate触发器所删除的commodity的记录的备份。将被删除的数据保存到另一个单独创建的名为 del_save表中。 CREATE TRIGGER commodityupdate1 ON commodity FOR UPDATE AS INSERT del_save SELECT * FROM deleted 递归触发器 能触发自身的触发器被称为递归触发器 。 触发器不会以递归方式自行调用,除非设置了RECURSIVE_TRIGGERS数据库选项。 直接递归 :触发器激发并执行一个操作,而该操作又使同一个触发器再次激发。 间接递归 :触发器

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档