数据库实验3触发器报告

上传人:人*** 文档编号:431927020 上传时间:2023-01-08 格式:DOC 页数:8 大小:92KB
返回 下载 相关 举报
数据库实验3触发器报告_第1页
第1页 / 共8页
数据库实验3触发器报告_第2页
第2页 / 共8页
数据库实验3触发器报告_第3页
第3页 / 共8页
数据库实验3触发器报告_第4页
第4页 / 共8页
数据库实验3触发器报告_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《数据库实验3触发器报告》由会员分享,可在线阅读,更多相关《数据库实验3触发器报告(8页珍藏版)》请在金锄头文库上搜索。

1、 数据库技专题训练I(2014年春)序号:数据库专题训练-触发器实验报告系别:计算机科学与技术班级:计11-3班姓名:黄娟娟学号:11101020324成绩:评语:指导教师签字: 日期: 实验二 触发器一、 实验环境及要求 触发器是一种特殊的存储过程,不能被用户直接调用。可以包含复杂的 SQL语句。在特定事件发生时自动触发执行,通常用于实现强制业务规则和数据完整性。DML触发器分为两种类型:AFTER 触发器和 INSTEAD OF触发器。 通过本次实验掌握触发器的创建方法以及使用方法。二、 实验步骤及结果1) 创建一个名为tri_Insert_S的触发器,测试改触发器的执行情况,并给出实验结

2、果。当插入的新记录中Sage的值不是18至25之间的数值时,就激活该触发器,撤销该插入操作,并给出错误提示。use SXCJgo create trigger tri_Insert_S on Safter insertasif exists (select * from inserted where Sage=18 and Sage=0 and Score=100) begin insert into SC select * from inserted print插入成功! end else begin rollback transaction print分数必须在到之间,插入数据失败! en

3、d end goinsert into SCvalues(S3,C3,110)go显示如下: 6) 创建一个名为tir_Update_S的触发器,实现:当学生基本表S中的学号Sno发生变化时,SC选课记录中对应的学号也发生改变。并通过测试数据验证该触发器的执行情况。use SXCJgo if exists(select name from sysobjects where name=tir_Update_S and type=TR) begin drop trigger tir_Update_S endgocreate trigger tir_Update_S on Safter update

4、as declare OldSno varchar(20),newSno varchar(20)select OldSno=Sno from deleted select newSno=Sno from insertedif (update(Sno) begin update SC set SC.Sno=newSno where SC.Sno=OldSno endelse rollback transactiongoupdate Sset Sno=S11where Sno=S1select * from Sselect * from SC显示如下: S表: SC表: 7) 创建一个名为tri_

5、Delete_C 的触发器,实现:删除一门课程时候,首先判断该课程有否有人选,如果有人选,则不能删除并通过测试数据验证该触发器的执行情况。use SXCJgocreate trigger tri_Delete_C on Cinstead of deleteas if(exists (select * from SC,deleted where SC.Cno=deleted.Cno) begin rollback transaction print该课程无法删除! endelse begin delete from C where Cno in( select Cno from deleted)

6、 end godelete from Cwhere Cno=C1go 显示如下: 三、 实验中的问题及解决方法 问题:对update触发器不是很熟悉,在建立此触发器的时候,对于deleted表和inserted表调用的不当,导致老出现问题。 解决方法:通过查询资料,了解到deleted表是存放更新前的数据,而inserted表是存放更新后的数据。通过定义变量,先把表内的数据赋值到变量上,然后能够灵活应用。四、 实验总结 通过实验大概学习了AFTER 触发器和INSTEAD OF触发器。实践了触发器的创建方法以及使用方法。 其中,AFTER 触发器又称为后触发器,该类触发器是在引起触发器执行的修

7、改语句成功完成之后执行。如果修改语句因错误(如违反约束或语法错误)而失败,触发器将不会执行。此触发器只能定义在表上,不能创建在视图上。可以为每个触发操作(INSERT、UPDATE或DELETE)创建多个AFTER触发器。 INSTEAD OF触发器(又称为替代触发器)当引起触发器执行的修改语句停止执行时,该类触发器代替触发操作执行。该类触发器既可在表上定义,也可在视图上定义。对于每个触发操作(INSERT、UPDATE和DELETE)只能定义一个INSTEAD OF触发器。 由于对INSTEAD OF触发器掌握不是很牢固,在建立过程中出现问题。而且对于update触发操作使用的不是很好。在实验过程,通过老师上课的ppt以及在网上查询资料都能够顺利的解决在实验中发生的问题。 / 文档可自由编辑打印

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号