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

链接地址:https://www.desk33.com/p-250707.html