数据库应用技术——SQL Server 2008篇 第3版 作者 延霞 徐守祥 chap9.pptVIP

数据库应用技术——SQL Server 2008篇 第3版 作者 延霞 徐守祥 chap9.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文档。上传文档
查看更多
事务应用 – –开始事务 BEGIN TRANSACTION SUB_库存量 DECLARE @OrderNo INT, @GoodNo INT, @OrderAdd INT SELECT @OrderNo=MAX(订单号)+1 FROM 订单信息 – –建立新订单号 SET @GoodNo=6 – –建立货品编码 SET @OrderAdd=12 – –建立订货量 INSERT 订单信息(订单号, 销售工号, 货品编码, 客户编号, 数量) – –添加订单 VALUES(@OrderNo, 4,@GoodNo,1,@OrderAdd) IF @OrderNo IN (SELECT MAX(订单号) FROM 订单信息) UPDATE 货品信息 SET 库存量=库存量-@OrderAdd WHERE 编码=@GoodNo IF @OrderAdd 10 – –如果一次订货量超出则回滚事务 ROLLBACK TRANSACTION SUB_库存量 ELSE COMMIT TRANSACTION SUB_库存量 – –提交事务 GO 习题 1.简述使用触发器有哪些优缺点。 2.说明创建触发器命令中FOR、AFTER、INSTEAD OF各表示什么含义? 3.TRUNCATE TABLE语句是否会激发DELETE触发器?在触发器中的SQL语句有哪些限制? 4.仿照例9-1,在“订单信息”表上,建立后触发的插入触发器,当用户插入新的订单行时,对价格大于5000元的货品如果订货量大于5则不能插入订单,并给出说明信息。 5.仿照例9-2,在“订单信息”表上,建立替代触发的插入触发器,当用户插入新的订单行时,对价格大于5 000元的货品如果订货量大于5则不能插入订单,并给出说明信息。 习题 6.在“订单信息”表上,建立后触发器,当用户插入新的订单行时,按照订货量的增加相应地在货品表中减少库存量。 7.在“部门信息”表上,建立一个UPDATE后触发器,当修改“部门信息”的“编号”列时,同时修改销售人员表中的“部门号”。 8.和习题6相对应,当客户退订单时,即从订单表中删除记录时通过“订单信息”表上建立的删除触发器,自动归还“货品信息”信息表中的库存量。 9.什么是事务的4个基本属性?说明3种事务各有什么特点。 触发器 数据库应用技术——SQL Server2008篇 主讲人: 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 本章主要内容: 1. 触发器的作用 2.创建、修改、删除触发器 触发器的概念 触发器是一种特殊类型的存储过程,通常用于实现强制业务规则和数据完整性。 触发器通过事件触发而由系统自动执行 对表进行修改操作,包括UPDATE、INSERT或DELETE时都会激活相应的触发器 触发器不允许带参数,也不允许被调用 触发器原理 SQL Server 2008为每个触发器都创建了两个专用临时表:INSERTED表和DELETED表 两个表的结构与激发触发器的表的结构相同 用户不能对它们进行修改,只能在触发器程序中查询表中的内容 触发器执行完毕后,与该触发器相关的这两个表也会被删除 触发器原理 当执行INSERT语句时,INSERTED表存放要向表中插入的所有行。 当执行DELETE语句时,DELETED表存放要从表中删除的所有行。 当执行UPDATE语句时,相当于先执行一个DELETE操作,再执行一个INSERT操作。所以旧的行被移动到DELETED表,而新的行插入到INSERTED表。 使用触发器的优点 (1)多张表的级联修改。 (2)强于CHECK约束的复杂限制。 (3)比较数据修改前后的差别。 (4)强制表的修改要合乎业务规则。 创建触发器 创建INSERT触发器 示例:在“订单信息”表上,建立后触发的插入触发器,当用户插入新的订单行时,如果订货量大于货品信息表上的库存量,则不能实现插入操作,并给出提示信息。 – –如果存在则删除 IF EXISTS(SELECT name,type FROM sysobjects WHERE name=Check_库存量 AND type=TR) DROP TRIGGER Check_库存量 GO 接上页 – –建立后触发的插入触发器 CREATE TRIGGER Check_库存量 ON 订单信息 FOR INSERT – –表明是后触发 AS DECLARE @OrderNum INT, @Stored INT, @GoodNo I

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档