- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库系统概第五章课件
数据库原理与应用;第5章 数据库完整性;第5章 数据库完整性;5.1 实体完整性;5.1 实体完整性(续);5.1 实体完整性(续);5.1 实体完整性(续);5.1 实体完整性(续);5.2 参照完整性;5.2 参照完整性(续);5.2 参照完整性(续);5.2 参照完整性(续);5.3 用户自定义完整性;5.3 用户自定义完整性(续);5.3 用户自定义完整性(续);5.3 用户自定义完整性(续);5.3 用户自定义完整性(续);5.3 用户自定义完整性(续);5.4 完整性约束命名子句;5.4 完整性约束命名子句;5.5 触发器;5.5 触发器(续);5.5 触发器(续);5.5 触发器(续);5.5 触发器(续);5.5 触发器(续);5.4 触发器(续);INSERT 触发器的工作过程 在定义了INSERT触发器的表上执行INSERT语句 激活INSERT触发器 INSERT语句插入的行被同时增加到触发器所在的表和 inserted 表中 触发器动作被执行 inserted 表允许用户引用 INSERT 语句所插入的数据,这样触发器可以根据具体数据决定是否执行以及如何执行特定语句。;例2:在Northwind数据库中Order Details表中插入订单详情的时候,同步更新产品表Products中相应产品的库存量。;在定义了 INSERT 触发器的表上执行 INSERT 语句;DELETE 触发器的工作过程 在定义了DELETE触发器的表上执行DELETE 语句 激活DELETE触发器 从数据库表中删除相应的行,并记录到deleted表中 触发器动作被执行 DELETE 触发器不会被 TRUNCATE TABLE 语句触发,因为 TRUNCATE TABLE 语句不记录在日志中。;例3:当在Categories表中删除一个类别的时候,将Products表中该类别产品的Discontinued设置为1。;;UPDATE 触发器的工作过程 在定义了UPDATE触发器的表上执行UPDATE 语句 激活 UPDATE触发器 原行(前像)被移到 deleted 表中,而更新的行(后像)则插入 inserted 表中 触发器可以检索 deleted 和 inserted 表以及被更新的表,来确定是否更新了多行以及如何执行触发器动作;例4:不允许修改student表中的学号Sno,如果修改该列则显示错误信息并取消操作。 CREATE TRIGGER trg_student_updateSno ON student AFTER UPDATE AS if update(Sno) begin print Student ID cannot be modified! rollback transaction end;例5:???COURSE表上创建触发器,检查插入和更新时是否出现课程名相同的记录,若有则不操作。。 create trigger trg_Course_IU on course after insert,update as if(select count(*) from inserted,course where inserted.cname=course.cname)1 begin print Cannot insert rollback transaction end;5.4 触发器(续);例6:创建一个包括学生和教师编号、姓名以及类别的视图,在视图上建立更新触发器,可通过视图更新结果返回到源基本表中。 create view vw_s_t(ID,Name,Type) as SELECT gh , xm, teacher FROM js$ UNION SELECT xh , xm, student FROM xs$ ;CREATE TRIGGER trg_vw_s_t_update ON vw_s_t INSTEAD OF UPDATE AS begin IF UPDATE(Name) begin declare @ID nvarchar(255),@name nvarchar(255), @type nvarchar(15)
有哪些信誉好的足球投注网站
文档评论(0)