《数据库触发器》PPT课件.ppt
《《数据库触发器》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库触发器》PPT课件.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、触发器触发器触发器触发器l触发器概述触发器概述l问题的引入问题的引入l触发器的概念触发器的概念l触发器的原理触发器的原理l触发器的分类触发器的分类l触发器的创建、修改及删除触发器的创建、修改及删除l应用示例应用示例触发器概述触发器概述问题的引入问题的引入增加一个记录增加一个记录删除一个记录删除一个记录(“95003”,”002”,56)95001 006 9041l在在 学生管理数据库学生管理数据库 中中,某学生的某学生的 选课门数选课门数 是一个经常是一个经常访问的属性访问的属性,因此在因此在studentstudent表中增加一个属性表中增加一个属性sselnumsselnum (smal
2、lintsmallint)l在实际应用在实际应用l实例展示实例展示触发器概述触发器概述l考虑该问题涉及两个表之间的关系,可否用参照考虑该问题涉及两个表之间的关系,可否用参照完整性来实现完整性来实现?l可否用嵌套的可否用嵌套的SQLSQL语句来实现语句来实现?l问题的解决:使用触发器问题的解决:使用触发器triggertriggerlupdate student set update student set sselnumsselnum=(select=(select count(*)from s_c where count(*)from s_c where s_c.snos_c.sno=stu
3、dent.snostudent.sno)l存在的问题存在的问题l触发器的主要作用就是其能够实现由主键和外键所触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性不能保证的复杂的参照完整性和数据的一致性 触发器概述触发器概述触发器的概念触发器的概念l触触发发器器是是一一种种特特殊殊类类型型的的存存储储过过程程。在在SQL SQL ServerServer里里面面也也就就是是对对某某一一个个表表的的一一定定的的操操作作,触发某种条件,从而执行的一段程序。触发某种条件,从而执行的一段程序。l 触发器触发器触发原因触发原因对表进行插入、更新或删除对表进行插入、更新或删除
4、操作操作触发事件触发事件。l 触发结果触发结果:另一段程序的执行。:另一段程序的执行。l 思考思考 :在上例中,触发原因是什么?触发结:在上例中,触发原因是什么?触发结果是什么?果是什么?触发器概述触发器概述l 触发器和存储过程的区别:触发器和存储过程的区别:INSERT INTO s_c INSERT INTO s_c VALUES(95001,006,90)VALUES(95001,006,90)EXEC Getgrade 95001EXEC Getgrade 95001l 触发器可以用于触发器可以用于 SQL Server SQL Server 约束、默认值和约束、默认值和规则的完整性检
5、查。规则的完整性检查。触发器主要是通过事件触发而执行的,而存触发器主要是通过事件触发而执行的,而存储过程是通过调用存储过程名称而执行的。储过程是通过调用存储过程名称而执行的。触发器概述触发器概述特殊性在于:特殊性在于:l l它与表紧密相连,不可以脱离表单独存在。它与表紧密相连,不可以脱离表单独存在。l l不允许使用参数,没有返回值。不允许使用参数,没有返回值。l l不不允允许许用用户户调调用用,当当对对表表进进行行插插入入、删删除除、修修改改操作时由系统自动调用并执行(相当于事件方法)。操作时由系统自动调用并执行(相当于事件方法)。触发器概述触发器概述触发器可以实现比较复杂的完整性约束:触发器
6、可以实现比较复杂的完整性约束:l l扩展约束、默认值和规则对象的完整性检查。扩展约束、默认值和规则对象的完整性检查。l l自动生成数据。自动生成数据。l l检查数据的修改,防止对数据不正确的修改,保证数据检查数据的修改,防止对数据不正确的修改,保证数据表之间数据的正确性和一致性。表之间数据的正确性和一致性。l l自定义复杂的安全权限。自定义复杂的安全权限。触发器作为一种数据库对象,在触发器作为一种数据库对象,在syscommentsyscomment系统表中系统表中存储其完整的定义信息,在存储其完整的定义信息,在sysobjectsysobject系统表中有该对象系统表中有该对象的记录。的记录
7、。触发器概述触发器概述1)触发器自动执行)触发器自动执行 在对表的数据作了任何修改(比如手工输入或者应用程序采取的在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。操作)之后立即被激活。3)触发器可以实现比)触发器可以实现比CHECK约束更为复杂的数据完整性约束约束更为复杂的数据完整性约束 在数据库中为了实现数据完整性约束,可以使用在数据库中为了实现数据完整性约束,可以使用CHECK约束或约束或触发器。触发器。CHECK约束不允许引用其它表中的列来完成检查工作,而约束不允许引用其它表中的列来完成检查工作,而触发器可以引用其它表中的列。触发器可以引用其它表中的列。2)
8、触发器能够对数据库中的相关表实现级联更改)触发器能够对数据库中的相关表实现级联更改 触发器是基于一个表创建的,但是可以针对多个表进行操作,实触发器是基于一个表创建的,但是可以针对多个表进行操作,实现数据库中相关表的级联更改。现数据库中相关表的级联更改。触发器概述触发器概述lAFTER类型触发器:l只有执行某一操作(INSERT UPDATE DELETE)之后,触发器才被触发。l只能在表上定义。触发器的分类触发器的分类lINSTEAD OF 触发器:l并不执行其所定义的操作(INSERT、UPDATE、DELETE),而仅是执行触发器本身。l既可在表上定义INSTEAD OF 触发器,也可以在
9、视图上定义INSTEAD OF 触发器。触发器概述触发器概述触发器的原理触发器的原理lInserted表和Deleted表的理解:Inserted Inserted和和DeletedDeleted是逻辑(概念)表。当在定义了触是逻辑(概念)表。当在定义了触发器的表上发生了修改操作时会自动派生出这两个视图。发器的表上发生了修改操作时会自动派生出这两个视图。当在表上发生插入操作时,新插入的行将出现在插入视当在表上发生插入操作时,新插入的行将出现在插入视图中。图中。当在表上发生删除操作时,被删除的行将出现在删除视当在表上发生删除操作时,被删除的行将出现在删除视图中。图中。当在表上发生更新操作时,旧行
10、出现在删除视图中,新当在表上发生更新操作时,旧行出现在删除视图中,新行出现在插入视图中。行出现在插入视图中。触发器概述触发器概述l触发器的原理触发器的原理lInserted表和Deleted表的理解:(1)如果基于)如果基于S_C表的表的UPDATE操作定义了触发器操作定义了触发器(2)再执行语句:)再执行语句:UPDATES_CSETgrade=70WHEREsno=95001ANDcno=001在在UPDATE语句执行过程中语句执行过程中Deleted表的内容:表的内容:Inserted表的内容:表的内容:S_C表表触发器的创建触发器的创建v触发器的基本操作触发器的基本操作创建创建在创建触
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库触发器 数据库 触发器 PPT 课件
限制150内