版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
触发器的应用课程简介2通过本课程的学习,结合实例掌握触发器的应用。
主要学习内容:一.DML触发器的应用二.DDL触发器的应用DML触发器的应用31.INSERT触发器INSERT触发器通常被用来验证被触发器监控的字段中的数据满足要求的标准,以确保数据完整性。【例】在表“BookInfo”上创建INSERT的AFTER触发器“TriInsertTip”,当添加新图书信息后,会提示“添加了一本书!”,并进行测试。步骤如下:DML触发器的应用4(1)创建:在"对象资源管理器"窗口中,展开“数据库”→“BookManageDB”节点,再展开“表”节点下要创建触发器的“BookInfo”节点,用右键单击“触发器”节点,从弹出的快捷菜单中选择“新建触发器”命令,在打开的"查询编辑器"的触发器代码模板基础上编写以下代码并单击"SQL编辑器"工具栏上的“执行”按钮完成创建,如图所示:DML触发器的应用5(2)在"对象资源管理器"窗口中,展开数据库“BookManageDB”节点→表“BookInfo”节点→“触发器”节点,可以看到新建的触发器“TriInsertTip”。(3)测试:所定义的触发器是在对表“BookInfo”执行INSERT操作后将被激活,现添加一册图书,在“查询编辑器”中输入以下代码并测试,结果如图所示:DML触发器的应用6可以看出,向表“BookInfo”插入一条新记录后,激活了触发器“TriInsertTip”,而执行了触发器内部定义的操作,在消息卡上提示“添加了一本书”。DML触发器的应用72.DELETE触发器DELETE触发器通常用于两种情况:(1)为了防止那些确实需要删除但会引起数据一致性问题的记录的删除。(2)执行可删除主记录时子记录的级联删除操作。可以使用这样的触发器从主销售记录中删除所有的定单项。DML触发器的应用8【例】在图书馆读者管理的过程中,若要删除一名用户要先检查该用户是否有书没还,若该用户还有书没还则不能被删除。在表“Users”上创建DELETE的AFTER触发器“TriDeleteUser”,并测试。DML触发器的应用91)创建:同上例,在“查询编辑器”中输入以下代码并执行,可在表“Users”中创建触发器“TriDeleteUser”,如图所示:DML触发器的应用10在代码中,定义了两个变量:@UserID用于存放要删除用户的ID号,@num用于存放从表“Borrow”中查出的要删除用户所未归还图书的数量。在更新表操作时,会产生两张临时表(INSERTED表和DELETED表),以记录更新前后的变化。它们的结构与创建触发器的表的结构相同。然后通过分支语句,判定用户如有未归还的图书,则用事务回滚语句ROLLBACK撤销之前的删除命令,并提示;如用户未有借阅图书,就直接删除,并提示。DML触发器的应用112)测试:现删除指定用户,在“查询编辑器”中分别输入以下代码,并测试,DELETE事件发生后激活触发器“TriDeleteUser”,结果如图所示,结果说明1001用户有借书,而1015用户没有借书。再去查看表“Users”,发现“1001”用户的确没有被删除,而“1015”用户已被删除。DML触发器的应用123、UPDATE触发器【例】创建了一个UPDATE的AFTER触发器“Tri_BookInfo_Update”,防止用户修改BookInfo表的图书的ISBN号(“BookBarCode”),并进行测试。DML触发器的应用131)在“查询编辑器”中输入以下代码并执行,在表“BookInfo”中创建触发器“Tri_BookInfo_Update”,如图所示:DML触发器的应用142)测试:所定义的触发器是对表“BookInfo”执行UPDATE行记录后将被激活。现更新某一图书ISBN号,在“查询编辑”中分别输入以下代码进行测试,以上UPDATE事件发生之后激活触发器“Tri_BookInfo_Update”,执行结果如图所示,可以看出,在表“BookInfo”更新记录行后,激活触发器“Tri_BookInfo_Update”,通过ROLLBACK阻止了更新操作。DML触发器的应用154.INSTEADOF触发器【例】创建一个触发器”Tri_Users_Undelete”,用于实现当在Users表中删除记录时,不允许删除表中的数据,并给出信息提示。分析:当提出删除表记录命令时,却不允许删除,只有采用INSTEADOF触发器才能实现这种特殊的限制。DML触发器的应用161)在“查询编辑器”中执行以下代码,创建触发器“Tri_Users_Undelete”,如图所示:DML触发器的应用172)测试:在“查询编辑器”中执行以下代码,删除用户号为“1001”的用户,结果如图所示,可以看到,INSTEADOF触发器里的提示任务取代原来要进行的删除用户操作,查看表“Users”,1001用户仍旧存在。DDL触发器的应用18DDL触发器常用于以下情况:防止对数据库架构进行某些更改响应数据库架构中的更改记录数据库架构中的更改或事件DDL触发器的应用19DDL触发器常用于以下情况:防止对数据库架构进行某些更改响应数据库架构中的更改记录数据库架构中的更改或事件【例】创建一个触发器cant_drop_table,用于防止用户删除或更改“BookManageDB”数据库中的任一数据表,并测试。DDL触发器的应用201)创建:在确认当前可用数据库是“BookManageDB”后,在“查询编辑器”中,输入以下代码并执行后,可在数据库“BookManageDB”中创建触发器“cant_drop_table”,如图所示:DDL触发器的应用212)测试:所定义的触发器是数据库“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 空调过滤器更换规程
- 一例恶性心律失常患者的护理个案
- 电梯轿厢检修规程
- 水污染治理技术考试试题及答案
- 电力建设安全监管强化措施
- 骨隐球菌病护理查房
- 湿巾抑菌持久性安全性能评价
- 教育培训行业规范制度
- 锡林浩特《房产策划师》冲刺押题卷
- 护理质量与急诊护理
- (二模)2026年合肥市高三第二次教学质量检测语文试卷(含答案)
- 广东省广州市白云广雅中学2024-2025学年八年级下学期数学期中考试卷(含答案)
- 2025年四川省烟草专卖局(公司)招聘考试笔试试题(含答案)1
- 2026年西部计划志愿者招募考试题库及答案
- 2025-2026人教版高中地理选择性必修二期末综合检测练习卷(含解析)
- 产业链数字化全链条协同机制研究
- 2026年水利工程质量检测员网上继续教育考试题库200道完整版
- GB/Z 141-2025蓄电池和蓄电池组起动用铅酸蓄电池减少爆炸危险的装置性能检验的试验方法
- 校服代售合同范本
- 2026年河南交通职业技术学院单招职业适应性考试题库及参考答案详解
- 前瞻性队列研究的随访失访控制策略
评论
0/150
提交评论