数据库触发器

数据库触发器

ID:40347094

大小:204.00 KB

页数:28页

时间:2019-07-31

数据库触发器_第1页
数据库触发器_第2页
数据库触发器_第3页
数据库触发器_第4页
数据库触发器_第5页
资源描述:

《数据库触发器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、触发器触发器触发器概述问题的引入触发器的概念触发器的原理触发器的分类触发器的创建、修改及删除应用示例触发器概述问题的引入增加一个记录删除一个记录(“95003”,”002”,56)950010069041在[学生管理数据库]中,某学生的[选课门数]是一个经常访问的属性,因此在student表中增加一个属性sselnum(smallint).在实际应用实例展示触发器概述考虑该问题涉及两个表之间的关系,可否用参照完整性来实现?可否用嵌套的SQL语句来实现?问题的解决:使用触发器triggerupdatestudent

2、setsselnum=(selectcount(*)froms_cwheres_c.sno=student.sno)存在的问题触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性触发器概述触发器的概念触发器是一种特殊类型的存储过程。在SQLServer里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器触发原因对表进行插入、更新或删除操作触发事件。触发结果:另一段程序的执行。思考:在上例中,触发原因是什么?触发结果是什么?触发器概述触发器和存储过程的区别:

3、INSERTINTOs_cVALUES(‘95001’,‘006’,90)EXECGetgrade‘95001'触发器可以用于SQLServer约束、默认值和规则的完整性检查。触发器主要是通过事件触发而执行的,而存储过程是通过调用存储过程名称而执行的。触发器概述特殊性在于:l它与表紧密相连,不可以脱离表单独存在。l不允许使用参数,没有返回值。l不允许用户调用,当对表进行插入、删除、修改操作时由系统自动调用并执行(相当于事件方法)。触发器概述触发器可以实现比较复杂的完整性约束:l扩展约束、默认值和规则对象的完整性检

4、查。l自动生成数据。l检查数据的修改,防止对数据不正确的修改,保证数据表之间数据的正确性和一致性。l自定义复杂的安全权限。触发器作为一种数据库对象,在syscomment系统表中存储其完整的定义信息,在sysobject系统表中有该对象的记录。触发器概述1)触发器自动执行在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。3)触发器可以实现比CHECK约束更为复杂的数据完整性约束在数据库中为了实现数据完整性约束,可以使用CHECK约束或触发器。CHECK约束不允许引用其它表中的列来完成检

5、查工作,而触发器可以引用其它表中的列。2)触发器能够对数据库中的相关表实现级联更改触发器是基于一个表创建的,但是可以针对多个表进行操作,实现数据库中相关表的级联更改。触发器概述AFTER类型触发器:只有执行某一操作(INSERTUPDATEDELETE)之后,触发器才被触发。只能在表上定义。触发器的分类INSTEADOF触发器:并不执行其所定义的操作(INSERT、UPDATE、DELETE),而仅是执行触发器本身。既可在表上定义INSTEADOF触发器,也可以在视图上定义INSTEADOF触发器。触发器概述触发

6、器的原理Inserted表和Deleted表的理解:Inserted和Deleted是逻辑(概念)表。当在定义了触发器的表上发生了修改操作时会自动派生出这两个视图。当在表上发生插入操作时,新插入的行将出现在插入视图中。当在表上发生删除操作时,被删除的行将出现在删除视图中。当在表上发生更新操作时,旧行出现在删除视图中,新行出现在插入视图中。触发器概述触发器的原理Inserted表和Deleted表的理解:(1)如果基于S_C表的UPDATE操作定义了触发器(2)再执行语句:UPDATES_CSETgrade=70W

7、HEREsno=‘95001’ANDcno=‘001’在UPDATE语句执行过程中Deleted表的内容:Inserted表的内容:S_C表触发器的创建触发器的基本操作——创建在创建触发器前,必须注意以下几点:1、CREATETRIGGER语句必须是批处理中的第一条语句。2、只能在当前数据库中创建触发器,名称必须遵循标识符的命名规则。3、表的所有者具有创建触发器的默认权限,不能将该权限转给其他用户。4、不能在临时表或系统表上创建触发器,但是触发器可以引用临时表,但是不能引用系统表。触发器的创建创建触发器命令格式:

8、CREATETRIGGERtrigger_nameONtabel{FOR

9、AFTER

10、INSTEADOF}[INSERT],[UPDATE],[DELETE]AS[IFUPDATE(column)[{AND

11、OR}UPDATE(column)……]]sql_statement一、企业管理器二、查询分析器触发器的创建说明:{FOR

12、AFTER

13、INSTEADOF}:FOR

14、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。