实验八 触发器

实验八 触发器

ID:39142245

大小:1.15 MB

页数:13页

时间:2019-06-25

实验八 触发器_第1页
实验八 触发器_第2页
实验八 触发器_第3页
实验八 触发器_第4页
实验八 触发器_第5页
资源描述:

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

1、《数据库系统原理》实验报告八题目:实验八触发器学号:xxxxxxxxxxx姓名:lrm_1036日期:2010-12-30一、实验环境:SQLserver2005二、实验目的:1.掌握创建、修改、删除和执行触发器的方法;2.完成上机练习。三、实验内容与完成情况:(要求:提交源程序并标识必要的注释。保证程序能正确编译和运行,认真填写实验报告。)1.创建和执行触发器(1)交互式为数据库表Student创建一级联更新触发器TRIGGER_S(要求:若修改Student表中一学生的学号,则SC表中与该学生相关的学号自动修改)·启动SSMS,在“对象资源管理器”中

2、,展开“数据库”→“实验”→“表”→“dbo.Student对象”。右击“触发器”,在打开的快捷菜单中,选择“新建触发器”,打开触发器编辑窗口,如图1.1所示.图1.1·将窗口内模板语句修改为下列SQL语句:CREATETRIGGERTRIGGER_SONStudentFORUPDATEASIFUPDATE(SNO)BEGINDECLARE@SNO_NEWINT,@SNO_OLDINT--声明SELECT@SNO_NEW=SNOFROMINSERTED--查找新数据和SELECT@SNO_OLD=SNOFROMDELETED--查找旧数据UPDATESC

3、SETSNO=@SNO_NEWWHERESNO=@SNO_OLD--把新数据更新到SC表中END·单击工具栏中的分析按钮,检查语法是否正确。·单击执行按钮,保存创建的触发器,如图1.2所示。图1.2·验证触发器的作用:a.在SSMS中,打开数据库表Student和SC的数据表,可以看到,在Student中学号为1001的学生在SC表中有3条记录。b.查看数据库表Student和SC之间是否已创建外键参照关系,若已创建,则删除。使此功能用刚创建的触发器TRIGGER_S来代替。c.把表Student中的学号为1001改为1010,单击“执行”按钮,执行该操

4、作,如图1.3所示。use实验updateStudentsetSno=1010whereSno=1001图1.3d.单击表SC,使其成为当前表,单击工具栏中的“执行”按钮,更新数据库表SC中的数据,可以看到表SC中的三个1001学号同时自动变成了1010,如图1.4所示。图1.4(2)用SQL为数据库表SC创建一触发器Score_SC_TRI(要求:当插入一个记录或修改成绩时,确保此记录的成绩在0~100分之间)·打开查询编辑器窗口,在窗口中输入如下SQL语句:USE实验GOCREATEtriggerScore_SC_TRIONSCFORInsert,u

5、pdateAsdeclare@score_readintSelect@score_read=gradefrominserted--查找新数据(成绩)If@score_read>=0and@score_read<=100--判断新数据是否在-100之间BeginPrint'操作完成!'--是,输出ReturnEndPrint'成绩超出~100之间!请重新输入。'--否,输出RollbackTransaction--返回GO·单击工具栏中的“执行”按钮,执行SQL语句。·在“对象资源管理器”中,展开“数据库”→“实验”→“表”→“dbo.SC”→“触发器”,

6、可以看到Score_SC_TRI已经存在,如图1.5所示。图1.5·验证触发器的作用:a.在“对象资源管理器”中,打开表SC;b.在查询编辑器窗口中输入如下SQL语句:USE实验INSERTINTOSCVALUES(1001,4,190)--成绩为超出范围,而要求重新输入GOINSERTINTOSCVALUES(1001,4,100)--绩为在正常范围内,而插入表中GOUPDATESCSETgrade=130WHERESNO=1002ANDCNO=1--成绩为超出范围,而要求重新输入GOUPDATESCSETgrade=60WHERESNO=1002AN

7、DCNO=1--成绩为在正常范围内,而修改成功GOc.单击工具栏中的“执行”按钮,执行SQL语句。可以看到4调系统信息,表示:第一条INSERT语句因成绩为190超出范围,而要求重新输入;第二条INSERT语句因成绩为100在正常范围内,而插入表中;第三条UPDATE语句因成绩为130超出范围,而要求重新输入;第四条UPDATE语句因成绩为60在正常范围内,而修改成功,如图1.6所示。图1.6d.再次查看SC表中的数据,可以看到增加了一个记录,修改了一个记录,如图1.7所示。图1.7(3)请自行完成:用SQL为数据库表Course创建一个级联删除触发器T

8、RIGGER_DC(要求:通过课程名从Course表中删除某课程信息,同时删除S

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

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

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