已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库技专题训练I(2014年春)序号:数据库专题训练-触发器实验报告系别:计算机科学与技术班级:计11-3班姓名:黄娟娟学号:11101020324成绩:评语:指导教师签字: 日期: 实验二 触发器一、 实验环境及要求 触发器是一种特殊的存储过程,不能被用户直接调用。可以包含复杂的 SQL语句。在特定事件发生时自动触发执行,通常用于实现强制业务规则和数据完整性。DML触发器分为两种类型:AFTER 触发器和 INSTEAD OF触发器。 通过本次实验掌握触发器的创建方法以及使用方法。二、 实验步骤及结果1) 创建一个名为tri_Insert_S的触发器,测试改触发器的执行情况,并给出实验结果。当插入的新记录中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分数必须在到之间,插入数据失败! end 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 updateas 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_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) end godelete from Cwhere Cno=C1go 显示如下: 三、 实验中的问题及解决方法 问题:对update触发器不是很熟悉,在建立此触发器的时候,对于deleted表和inserted表调用的不当,导致老出现问题。 解决方法:通过查询资料,了解到deleted表是存放更新前的数据,而inserted表是存放更新后的数据。通过定义变量,先把表内的数据赋值到变量上,然后能够灵活应用。四、 实验总结 通过实验大概学习了AFTER 触发器和INSTEAD OF触发器。实践了触发器的创建方法以及使用方法。 其中,AFTER 触发器又称为后触发器,该类触发器是在引起触发器执行的修改语句成功完成之后执行。如果修改语句因错误(如违反约束或语法错误)而失败,触发器将不会执行。此触发器只能定义在表上,不能创建在视图上。可以为每个触发操作(INSERT、UPDATE或DELETE)创建多个AFTER触发器。 INSTEAD OF触发器(又称为替代触发器)当引起触发器执行的修改语句停止执行时,该类触发器代替触发操作执行。该类触发器既可在表上定义,也可在视图上定义。对于每个触发操作(INSERT、UPDATE和DELETE)只能定义一个INSTEAD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年小学三年级体育上学期体能测试卷
- 2025年小学二年级语文上学期拼音专项练习
- 2025私人车辆买卖合同范本参考
- 个性化技能提升路径探索与实践
- 2025年协管员考试题型及答案
- 2025年养老个人总结5篇
- 2025国考东营市海关监管岗位申论预测卷及答案
- 2025年下半年咸阳市县及县以下医疗机构定向招考易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年周口科技职业学院招考教师易考易错模拟试题(共500题)试卷后附参考答案
- 2025企业全面股权转让合同范本
- 基于“境脉”视角的高中地理教学实践研究
- 高端医疗服务市场2025年需求趋势预测与服务模式创新案例剖析
- 工地试验室日常管理课件
- 《建筑业10项新技术(2025)》全文
- 2025齐齐哈尔辅警考试真题
- 学堂在线 海上求生与救生 期末考试答案
- 幼儿园五大领域跨部门协同流程
- 青少年皮肤护理课件
- 行政实务培训课件
- 管家星级评定管理办法
- 职业生涯报告课件
评论
0/150
提交评论