数据库触发器.pptxVIP

  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文档。上传文档
查看更多
数据库触发器 01:48 触发器 触发器概述 问题的引入 触发器的概念 触发器的原理 触发器的分类 触发器的创建、修改及删除 应用示例 第1页/共28页 01:48 触发器概述 问题的引入 增加一个记录 删除一个记录(“95003”,”002”,56) 95001 006 90 4 1 在[学生管理数据库]中,某学生的[选课门数]是一个经常访问的属性,因此在student表中增加一个属性sselnum (smallint). 在实际应用 实例展示 第2页/共28页 01:48 触发器概述 考虑该问题涉及两个表之间的关系,可否用参照完整性来实现?  可否用嵌套的SQL语句来实现?  问题的解决:使用触发器trigger update student set sselnum=(select count(*) from s_c where s_c.sno=student.sno) 存在的问题  触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性 第3页/共28页 01:48 触发器概述 触发器的概念 触发器是一种特殊类型的存储过程。在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。 触发器触发原因对表进行插入、更新或删除操作触发事件。 触发结果:另一段程序的执行。 思考 :在上例中,触发原因是什么?触发结果是什么? 第4页/共28页 01:48 触发器概述 触发器和存储过程的区别: INSERT INTO s_c VALUES(‘95001’,‘006’,90) EXEC Getgrade ‘95001 触发器可以用于 SQL Server 约束、默认值和规则的完整性检查。 触发器主要是通过事件触发而执行的,而存储过程是通过调用存储过程名称而执行的。 第5页/共28页 01:48 触发器概述 特殊性在于: l它与表紧密相连,不可以脱离表单独存在。 l不允许使用参数,没有返回值。 l不允许用户调用,当对表进行插入、删除、修改操作时由系统自动调用并执行(相当于事件方法)。 第6页/共28页 01:48 触发器概述 触发器可以实现比较复杂的完整性约束: l  扩展约束、默认值和规则对象的完整性检查。 l 自动生成数据。 l 检查数据的修改,防止对数据不正确的修改,保证数据表之间数据的正确性和一致性。 l 自定义复杂的安全权限。 触发器作为一种数据库对象,在syscomment系统表中存储其完整的定义信息,在sysobject系统表中有该对象的记录。 第7页/共28页 01:48 触发器概述 1)触发器自动执行 在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。 3)触发器可以实现比CHECK约束更为复杂的数据完整性约束 在数据库中为了实现数据完整性约束,可以使用CHECK约束或触发器。CHECK约束不允许引用其它表中的列来完成检查工作,而触发器可以引用其它表中的列。 2)触发器能够对数据库中的相关表实现级联更改 触发器是基于一个表创建的,但是可以针对多个表进行操作,实现数据库中相关表的级联更改。 第8页/共28页 01:48 触发器概述 AFTER类型触发器: 只有执行某一操作(INSERT UPDATE DELETE) 之后,触发器才被触发。 只能在表上定义。 触发器的分类 INSTEAD OF 触发器: 并不执行其所定义的操作(INSERT、 UPDATE、 DELETE),而仅是执行触发器本身。 既可在表上定义INSTEAD OF 触发器,也可以在视图上定义INSTEAD OF 触发器。 第9页/共28页 01:48 触发器概述 触发器的原理 Inserted表和Deleted表的理解: Inserted和Deleted是逻辑(概念)表。当在定义了触发器的表上发生了修改操作时会自动派生出这两个视图。 当在表上发生插入操作时,新插入的行将出现在插入视图中。 当在表上发生删除操作时,被删除的行将出现在删除视图中。 当在表上发生更新操作时,旧行出现在删除视图中,新行出现在插入视图中。 第10页/共28页 01:48 触发器概述 触发器的原理 Inserted表和Deleted表的理解: (1)如果基于S_C表的UPDATE操作定义了触发器 (2)再执行语句: UPDATE S_C SET grade=70 WHERE sno=‘95001’ AND cno=‘001’ 在UPDATE语句执行过程中 Deleted表的内容: Inserted表的内容: S_C

文档评论(0)

kuailelaifenxian + 关注
官方认证
文档贡献者

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

认证主体太仓市沙溪镇牛文库商务信息咨询服务部
IP属地上海
统一社会信用代码/组织机构代码
92320585MA1WRHUU8N

1亿VIP精品文档

相关文档