收藏 分销(赏)

《SQLServer数据库》数据库存储过程、触发器的创建于管理实验报告.doc

上传人:仙人****88 文档编号:7976782 上传时间:2025-01-29 格式:DOC 页数:5 大小:71KB 下载积分:10 金币
下载 相关 举报
《SQLServer数据库》数据库存储过程、触发器的创建于管理实验报告.doc_第1页
第1页 / 共5页
《SQLServer数据库》数据库存储过程、触发器的创建于管理实验报告.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
北 华 航 天 工 业 学 院 《数据库系统管理》 实验报告 报 告 题 目 : 存储过程、触发器的创建于管理 所 在 系 部 : 计算机科学与工程系 所 在 专 业 : 网络工程专业 学 号 : 姓 名 : 教 师 姓 名 : 完 成 时 间 : 2011 年 10 月 19 日 北华航天工业学院教务处制 存储过程、触发器的创建与管理 一、 实验目的 1、 掌握存储过程的概念、优点、特点及用途; 2、 掌握创建、执行、查看、修改和删除存储过程的方法; 3、 了解触发器和一般存储过程的区别、概念及优点; 4、 掌握创建、查看、修改和删除触发器的方法。 二、 实验内容 (一)附加上次实验所创建的数据库“db_Library”,并回顾该数据库的数据表信息。 (二)练习创建和管理存储过程 1、使用管理控制台创建一个名为“计算机系借阅信息_PROC”的无参存储过程,要求显示计算机系读者2011-1-1以后借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段,并执行该存储过程,查看显示结果。 2、使用T-SQL语句创建一个名为“读者借阅信息_PROC”的带参数的存储过程,要求根据输入的读者的编号显示读者的所有借阅信息,包括“读者编号”、“姓名”、“系部”、“图书编号”、“图书名称”和“借阅日期”等字段,并执行该存储过程,查看显示结果。 create proc 读者借阅信息_PROC1 @dzbh char(10) as begin select tb_reader.读者编号,姓名,系部, tb_book.图书编号,书名,借阅日期 from tb_book,tb_reader,tb_borrow where tb_book.图书编号=tb_borrow.图书编号 and tb_reader.读者编号=tb_borrow.读者编号 and tb_reader.读者编号=@dzbh end -- declare @srcs char(10),@fhzt int set @srcs='R10009' exec @fhzt=读者借阅信息_PROC1 @srcs print '执行状态值为'+cast(@fhzt as varchar(10)) 3、 使用T-SQL语句创建一个名为“图书借阅信息_PROC”的带参数的存储过程,要求根据输入的图书编号计算该图书的借阅数量,并根据程序执行结果返回不同的值,执行成功返回0,不成功返回错误号,并执行该存储过程,输出图书编号、借阅数量和程序结果返回值。 create proc 图书借阅信息_PROC1 @tsbh char(10),@jysl int output as begin declare @ztz int set @ztz=0 select @jysl=count(distinct 读者编号) from tb_borrow where 图书编号=@tsbh if @@error<>0 set @ztz=@@error return @ztz end -- declare @sccs int,@fhz int,@srcs char(10) set @srcs='10003' exec @fhz=图书借阅信息_PROC1 @srcs,@sccs output select @srcs,@sccs,@fhz 4、 使用管理控制台查看“读者借阅信息_PROC”存储过程的定义信息和依赖的对象。 5、 使用系统存储过程查看“计算机系借阅信息_PROC”存储过程的定义信息和依赖的对象。 sp_helptext sp_depends 6、 使用T-SQL语句创建一个名为“删除读者信息_PROC”的存储过程,要求根据所提供的读者编号,删除该编号所对应的读者,如果不存在此编号的读者,则显示“该编号的读者不存在!”。创建完成之后,执行上述存储过程,观察执行结果。 create proc 删除读者信息_PROC1 @dzbh char(10) as begin if exists(select * from tb_reader where 读者编号=@dzbh) begin delete from tb_borrow where 读者编号=@dzbh delete from tb_reader where 读者编号=@dzbh end else print '该编号的读者不存在!' end exec 删除读者信息_PROC1 'R10010' 7、 使用T-SQL语句创建一个名为“修改借阅信息_PROC”的存储过程,要求根据所提供的读者编号和天数,将该读者的归还日期增加相应的天数,如果不存在该读者的借阅信息,则显示“该读者没有借阅图书!”。创建完成之后,执行上述存储过程,观察执行结果。 create proc 修改借阅信息_PROC1 @dzbh char(10),@ts int as begin if exists(select * from tb_borrow where 读者编号=@dzbh) update tb_borrow set 归还日期=dateadd(day,@ts,归还日期) where 读者编号=@dzbh else print '该读者没有借阅图书!' end -- exec 修改借阅信息_PROC1 @ts=3,@dzbh='R10003' 8、 使用管理控制台删除“读者借阅信息_PROC”存储过程。 9、 使用T-SQL语言删除“计算机系借阅信息_PROC1”存储过程。 drop proc 计算机系借阅信息_PROC1 (三)练习创建和管理触发器 1、使用管理控制台创建一个名为“读者信息插入_TRIG”的触发器,要求在“读者信息表”表中插入一条新记录时触发该触发器,并给出“插入了一条新记录!”的提示信息。并在“读者信息表”中插入一条记录查看显示结果。 2、使用T-SQL语句创建一个名为“借阅信息插入修改_TRIG”的触发器,要求在“借阅信息表”中插入或修改记录时触发该触发器,检查“归还日期”是否超过2011年12月31日,如果超过给出相应提示,提示中给出“归还日期”超过2011年12月31日的“图书编号”和“读者编号”。 create trigger 借阅信息插入修改_TRIG on tb_borrow for insert,update as begin declare @date datetime,@bookno char(10),@readerno char(10) select @date=归还日期,@bookno=图书编号,@readerno 读者编号 from inserted if @date>'2011-12-31' begin print 'date more than 2011-12-31' select @bookno 图书编号,@readerno 读者编号 end end insert into tb_borrow values('10011','R10004','2011-11-4','2012-2-2') 3、使用T-SQL语句实现该数据库中各表间的级联删除。 4、使用T-SQL语句创建一个插入、更新类型的触发器“图书信息_TRIG”,当图书信息表中插入或修改记录时,触发该触发器,检查库存册数是否大于0,若小于0,则撤销插入和修改操作。 create trigger 图书信息_TRIG on tb_book for insert,update as begein print 'begin trigger' declare @kccs int select @kccs=库存数from inserted if @kccs<0 rollback end insert into tb_book values('11001',2,'eee','ddd','ggg',29,-1) update tb_book set 库存数=-2 where 图书编号='10002' 5、使用管理控制台查看“读者信息插入_TRIG”触发器的依赖的对象。 6、使用系统存储过程查看“借阅信息插入修改_TRIG”触发器的定义信息和依赖的对象。 7、使用管理控制台删除“读者信息插入_TRIG”触发器。 8、使用T-SQL语言删除“借阅信息插入修改_TRIG”触发器。 drop trigger 借阅信息插入修改_TRIG
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服