第四章数据库完整性--触发器.ppt

第四章数据库完整性--触发器.ppt

ID:61748635

大小:487.00 KB

页数:44页

时间:2020-02-06

第四章数据库完整性--触发器.ppt_第1页
第四章数据库完整性--触发器.ppt_第2页
第四章数据库完整性--触发器.ppt_第3页
第四章数据库完整性--触发器.ppt_第4页
第四章数据库完整性--触发器.ppt_第5页
资源描述:

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

1、第四章数据库完整性-----触发器学习重点:✾掌握触发器的创建✾掌握触发器的删除、修改、执行方法✾掌握管理和维护触发器的方法内容提要概述触发器的创建与维护利用企业管理器管理和维护触发器一、内容回顾学号姓名性别出生年月系已修学分2006001200600220070102007020李丽张小天钱进王皓为女男男男1988-5-231988-3-241989-10-21990-1-25计算机计算机电子计算机81004课程号课程名学分C001C002C003C004数据结构离散数学C++JAVA5343学号课程号成绩20

2、0600120060012006002200600220060022007020C001C002C002C003C004c003907080806570学生表课程表成绩表1.表格内部的完整性约束2.表和表之间的完整性约束3.用户定义的完整性约束主键主键主键外键外键主键特性:唯一、不能为空外键特性:对应的值在主键中必须存在问题:1、王皓为同学退学,需删除相应记录,如何操作2、张小天通过一门新课考试,如何修改他的已修学分?概述二、使用触发器的优点触发器是一种特殊类型的存储过程。自动执行:在对表的数据作了任何修改之后立

3、即被激活。生效:UPDATE、INSERT或DELETE。触发器实现级联删除与级联修改。触发器可强制实现复杂的业务规则或要求。触发器还有助于强制数据完整性。三、创建触发器语法:CREATETRIGGERtrigger_nameON{table

4、view}[WITHENCRYPTION]{{{FOR

5、AFTER

6、INSTEADOF}{[INSERT][,][UPDATE]}[WITHAPPEND]         [NOTFORREPLICATION]         AS         [{IFUPDATE(c

7、olumn)             [{AND

8、OR}UPDATE(column)]                 [...n]         

9、IF(COLUMNS_UPDATED(){bitwise_operator}updated_bitmask)                 {comparison_operator}column_bitmask[...n]         }]sql_statement[...n]}}触发器实例分析:实例1、创建一个简单触发器,能在对数据表student进行插入、修改

10、或删除后,输出所影响的行数信息。createtriggersimple_trionstudentafterinsert,delete,updateasprint'(所影响的行数为:'+cast(@@rowcountasvarchar(10))+'行)'该触发器何时被触发?当对student执行insertdeleteupdate操作的时候实例2:创建级联删除触发器为表student创建一个删除触发器,当删除表student中的一个学生信息时,同时将表sc中相关的成绩信息一并删除。方法一:使用外键Createtables

11、c(snochar(8)foreignkeyreferencesstudent(sno)ondeletecascade,cnochar(4)foreignkeyreferencescourse(cno)ondeletecascade,gradeintcheck(grade>=0andgrade<=100),primarykey(sno,cno))方法二:使用触发器,前提是SC表没有定义和student表相关的外键createtriggerstu_delonstudentfordeleteasBeginBegintran

12、sactiondeclare@stu_snochar(8)select@stu_sno=deleted.snofromdeleteddeletefromscwheresc.sno=@stu_snoCommittranEnd原子事务处理方法!使用inserted和deleted表(重要)✽触发器语句中使用了两种特殊的表:deleted表和inserted表。由DBMS自动创建和管理这些表。可以使用这两个临时的驻留内存的表测试某些数据修改的效果及设置触发器操作的条件;然而,不能直接对表中的数据进行更改。✽Deleted表用

13、于存储DELETE和UPDATE语句所影响的行的复本。在执行DELETE或UPDATE语句时,行从触发器表中删除,并传输到deleted表中。Deleted表和原数据表通常没有相同的行。思考:表结构如何!✽Inserted表用于存储INSERT和UPDATE语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到ins

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

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

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