数据库原理》实验报告八
学号:E01114271 姓名:陈乐乐年级:大二成绩:
实验名称:存储过程和触发器
实验日期:2013年5月23日
实验目的:
(1)了解几个常用的系统存储过程
(2)掌握如何使用T-SQL语句创建,执行和重编存储过程
(3)了解如何使用企业管理器管理存储过程、
(4)掌握如何使用T-SQL语句创建触发器
(5)了解如何使用企业管理器创建触发器
(6)掌握AFTER触发器的使用法,并了解INSTEAD OF 触发器的用法
实验内容、步骤及结果
(1)创建存储过程
1.创建一个存储过程,查看200215121号课程的选修情况,
包括选修该课程学生的学号,姓名和成绩
2.执行存储过程
1.上面所建立的存储过程只能对200215121号课程的选修
情况进行查看,要想对所有课程进行随机查看,需要进行参数的传递.
2.按位置传递参数
3.通过参数名传递参数
(3)使用默认参数值
1.执行存储过程ssc_4时,如果没有给出参数,系统会报错。
如果希望不给参数时,能查询所有课程的选修情况,则可以使用默认参数值来实现
3.执行下面两条语句,比较执行结果。
1.创建一个存储过程ssc_6,获得选修某门课程的总人数
2.执行存储过程ssc_6
(5)使用返回值
1.创建一个返回执行状态码的存储过程ssc_7,它接受课程号
为输入参数,如果执行成功,返回0;如果没有给出课程号,
返回错误码1;如果给出的课程号不存在,返回错误码2;如果出现其他错误,返回错误码3
3.执行存储过程ssc_7
(5)修改存储过程
使用企业管理器修改存储过程ssc_3
(7)查看存储过程
执行以下语句,查看存储过程ssc_3信息
(8)删除存储过程
实验16 触发器
(1)创建触发器
1.在表Student中建立删除触发器,,实现表Student和
表SC的级联删除
2.在企业管理器中,向标Course中插入一列status
(CHAR(1)),并且默认值为‘0’,在表Sc中建立一个INSERT触发器,当向表SC中插入一行时,检查课程表中的课程是否正在准备中,如果是在准备中,则不能进行选修
入以下记录
4.向表SC加入00010号课程的选修记录,查看执行情况
5.将00010号课程的状态改为“0”
一功能
7.在上例中,只针对插入单行数据,不包括对多行的判
断,如果利用触发器对插入的数据进行逐行检查,并
将那些课程号在表Course中不存在的行删掉
(2)修改scinsert触发器
(3)查看依赖关系
1.在表SC上的scinsert触发器无效
2.使表SC上的scinsert触发器重新有效
(5)删除scinsert触发器。