数据库实验3 触发器报告

数据库实验3 触发器报告

ID:2093220

大小:135.00 KB

页数:8页

时间:2017-11-14

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

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

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

2、插入的新记录中Sage的值不是18至25之间的数值时,就激活该触发器,撤销该插入操作,并给出错误提示。useSXCJgocreatetriggertri_Insert_SonSafterinsertasifexists(select*frominsertedwhereSage>=18andSage<=25)print'添加成功!'elsebeginprint'无法添加!'rollbacktransactionendgoinsertintoSvalues('S8','黄丽','女',26,'计算机')insertintoSvalues('S8','黄丽','女',20,'计算机')se

3、lect*fromSgo显示如下:insertintoSvalues('S8','黄丽','女',26,'计算机')insertintoSvalues('S8','黄丽','女',20,'计算机')2)创建一个名为tri_Update_SC的触发器,要求:(1)首先判断数据库中是否已经存在名为tri_Update_SC的触发器,如果存在,首先删除,再创建。(2)当试图修改SC表中的学生成绩时,给出不能随便修改成绩的信息提示。useSXCJgoifexists(selectnamefromsysobjectswherename='tri_Update_SC'andtype='TR')b

4、egindroptriggertri_Update_SCendelseprint'不存在该触发器,可新建。'Go显示如下:createtriggertri_Update_SConSCafterupdateasifupdate(Score)beginprint'不能随意修改成绩!'rollbacktransactionendgoupdateSCsetscore=90Go显示如下:3)使用系统存储过程sp_help,sp_helptext,sp_helptrigger查看触发器相关信息。给出显示结果。useSXCJgoexecsp_help'tri_Insert_S'execsp_hel

5、ptext'tri_Insert_S'execsp_helptrigger'S'go显示如下:4)禁用tri_Update_SC触发器,并演示禁用该触发器后Update的执行情况。useSXCJgoaltertableSCdisabletriggertri_Update_SCupdateSCsetScore='95'whereSno='S1'andCno='C3'print'修改成功!'select*fromSCGo显示如下:5)在SC表上创建一个insteadof类型的触发器,触发器名称为:tri__Insert_SC。实现:当向表SC插入记录时检查分数的合理性,分数必须在0到10

6、0之间,如果不合理就拒绝插入,并给出信息提示,useSXCJgoifexists(selectnamefromsysobjectswherename='tri__InseCrt_SC'andtype='TR')begindroptriggertri__InseCrt_SCendelsebegincreatetriggertri__InseCrt_SConSCinsteadofinsertasifexists(select*frominsertedwhereScore>=0andScore<=100)begininsertintoSCselect*frominsertedprint'插

7、入成功!'endelsebeginrollbacktransactionprint'分数必须在到之间,插入数据失败!'endendgoinsertintoSCvalues('S3','C3',110)go显示如下:6)创建一个名为tir_Update_S的触发器,实现:当学生基本表S中的学号Sno发生变化时,SC选课记录中对应的学号也发生改变。并通过测试数据验证该触发器的执行情况。useSXCJgoifexists(selectnamefromsysobj

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

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

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