数据库原理课程设计报告报告实验创建存储过程与触发器 - 图文 联系客服

发布时间 : 星期二 文章数据库原理课程设计报告报告实验创建存储过程与触发器 - 图文更新完毕开始阅读30d8c33bf8d6195f312b3169a45177232f60e407

.

实验步骤2、创建存储过程。(任选一题) ① ② ③ ④ 创建可以按“书号”(参数)进行图书库存信息查询的存储过程。 创建可以按“类别”(参数)进行某类图书库存信息查询的存储过程。 创建可以按“读者编号”进行读者信息查询的存储过程。 自拟题 先在下面第一栏填写自己选择的题目和欲实现的功能,再在其余栏目中分别填写自己的代码以及执行情况、测试方案和数据、测试结果等等。如果选做多个或全做或额外完成自拟题,请自己依照格式添加栏目,自拟题请写清题意。 我的存储过程选题:(描述题目和欲实现的功能) 1.创建可以按“书号”(参数)进行图书库存信息查询的存储过程。 能够使得用户输入书号,就可以查询这本书的信息 原代码: 创建存储过程按照书号进行查询(ashcx),参数为shuhao 定义为char(20) create proc ashcx @shuhao char(20) as begin end select * from 图书现有库存表 where 书号=@shuhao 调用存储过程,查询书号为‘30001’图书的信息 exec ashcx @shuhao=30001 测试方案及数据: 创建存储过程,并查询书号为30001的图书信息 exec ashcx @shuhao=30001 测试结果:(文字说明、原代码、结果贴图) 查询书号为3001书的信息 word范文

.

实验步骤3、创建触发器。(任选一题) ① 创建“借书记录”表的插入触发器,每插入一条借阅记录就自动根据借阅数量减少该图书的“现有库存数量”(图书现有库存表),图书数量不足时可以报警,图书数量为零时拒绝插入借阅记录。 ② 创建“还书记录”表的插入触发器,每当有读者归还图书时,插入一条还书记录,同时计算是否超期并在“是否超期”和“超期天数”字段填写结果。并根据还书时提供的读者编号和书号,将“借书记录”表中的对应借阅记录的 “是否归还”中原来的“否”置为“是”(注意考虑特殊情况,比如一本书由同一个读者反复多次借阅或一次借阅多本的);根据“归还数量”增加该图书的“现有库存数量”(图书现有库存表)。 ③ 创建“入库单”表的插入触发器。在该表中插入图书入库记录时,在填写“图书编号”和“入库数量”时,通过触发器的作用,能判断在“ 图书现有库存表”是否存在该图书的库存记录,如果有,则自动更新该图书的现有库存数量,如果现有库存表中不存在该图书的库存记录(有可能是原来没有的新书),则在“图书现有库存表”中自动插入该图书的库存记录。对于书库中已经存在的图书(此次只是补充图书数量)能通过触发器的作用自动填写入库单该记录中其它的未填的该书的对应信息(提示,根据书号在图书现有库存表查询)。 ④ 自拟题目。 先在下面第一栏填写自己选择的题目和欲实现的功能,再在其余栏目中分别填写自己的代码以及执行情况、测试方案和数据、测试结果等等。如果选做多个或全做或额外完成自拟题,请自己依照格式添加栏目,自拟题请写清题意。 我的触发器选题:(描述题目和欲实现的功能) ① 创建“借书记录”表的插入触发器,每插入一条借阅记录就自动根据借阅数量减少该图书的“现有库存数量”(图书现有库存表),图书数量不足时可以报警,图书数量为零时拒绝插入借阅记录。 原代码: /* ① 创建“借书记录”表的插入触发器,每插入一条借阅记录就自动根据 借阅数量减少该图书的“现有库存数量”(图书现有库存表),图书数量 不足时可以报警,图书数量为零时拒绝插入借阅记录。 */ --use 图书管理系统 alter trigger crcfq on 借书记录表 for insert as begin --声明变量 word范文

.

declare @zdbh int, @sh char(10),@dzbh char(5),@jysl int,@glybh char(10) declare @xykcs int --查询库存数量 select @zdbh=inserted.借阅ID,@sh=inserted.书号,@dzbh=inserted.读者编号,@jysl=inserted.借阅数量, @xykcs=图书现有库存表.现有库存数 from 图书现有库存表 join inserted on inserted.书号 =图书现有库存表.书号 if(@jysl<=@xykcs) end begin --根据插入的销售记录的数量更新库存量 update 图书现有库存表 set 现有库存数=现有库存数-@jysl where @sh=书号 end begin print'库存量不足!!!' rollback transaction end else 测试方案及数据: 在借书记录表中插入数据:借书记录表(书号,读者编号, 借阅数量 )values('30002','0001',1) 在借书记录表中插入数据:借书记录表(书号,读者编号, 借阅数量 )values('30002','0001',55) 测试结果:(文字说明、原代码、结果贴图) 第一次插入数据:借书记录表(书号,读者编号, 借阅数量 )values('30002','0001',1) use 图书管理系统 select * from 借书记录表 go select * from 图书现有库存表 go insert into 借书记录表(书号,读者编号, 借阅数量 ) word范文

.

values('30002','0001',55) go select * from 借书记录表 go select * from 图书现有库存表 go 第二次测试插入数据:借书记录表(书号,读者编号, 借阅数量 )values('30002','0001',55) 输出结果 “库存量不足!!” use 图书管理系统 select * from 借书记录表 go select * from 图书现有库存表 go insert into 借书记录表(书号,读者编号, 借阅数量 ) values('30002','0001',55) go select * from 借书记录表 go select * from 图书现有库存表 go word范文