1、北 华 航 天 工 业 学 院数据库系统管理实验报告报 告 题 目 : 存储过程、触发器的创建于管理 所 在 系 部 : 计算机科学与工程系 所 在 专 业 : 网络工程专业 学 号 : 姓 名 : 教 师 姓 名 : 完 成 时 间 : 2011 年 10 月 19 日北华航天工业学院教务处制存储过程、触发器的创建与管理一、 实验目的1、 掌握存储过程的概念、优点、特点及用途;2、 掌握创建、执行、查看、修改和删除存储过程的方法;3、 了解触发器和一般存储过程的区别、概念及优点;4、 掌握创建、查看、修改和删除触发器的方法。二、 实验内容(一)附加上次实验所创建的数据库“db_Library
2、”,并回顾该数据库的数据表信息。(二)练习创建和管理存储过程1、使用管理控制台创建一个名为“计算机系借阅信息_PROC”的无参存储过程,要求显示计算机系读者2011-1-1以后借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段,并执行该存储过程,查看显示结果。2、使用T-SQL语句创建一个名为“读者借阅信息_PROC”的带参数的存储过程,要求根据输入的读者的编号显示读者的所有借阅信息,包括“读者编号”、“姓名”、“系部”、“图书编号”、“图书名称”和“借阅日期”等字段,并执行该存储过程,查看显示结果。create proc 读者借阅信息_PROC1dzbh char(10)a
3、sbegin select tb_reader.读者编号,姓名,系部,tb_book.图书编号,书名,借阅日期from tb_book,tb_reader,tb_borrowwhere tb_book.图书编号=tb_borrow.图书编号and tb_reader.读者编号=tb_borrow.读者编号and tb_reader.读者编号=dzbhend-declare srcs char(10),fhzt intset srcs=R10009 exec fhzt=读者借阅信息_PROC1 srcsprint 执行状态值为+cast(fhzt as varchar(10)3、 使用T-SQL
4、语句创建一个名为“图书借阅信息_PROC”的带参数的存储过程,要求根据输入的图书编号计算该图书的借阅数量,并根据程序执行结果返回不同的值,执行成功返回0,不成功返回错误号,并执行该存储过程,输出图书编号、借阅数量和程序结果返回值。create proc 图书借阅信息_PROC1tsbh char(10),jysl int outputasbegin declare ztz intset ztz=0 select jysl=count(distinct 读者编号) from tb_borrow where 图书编号=tsbh if error0 set ztz=error return ztze
5、nd-declare sccs int,fhz int,srcs char(10)set srcs=10003exec fhz=图书借阅信息_PROC1 srcs,sccs outputselect srcs,sccs,fhz4、 使用管理控制台查看“读者借阅信息_PROC”存储过程的定义信息和依赖的对象。5、 使用系统存储过程查看“计算机系借阅信息_PROC”存储过程的定义信息和依赖的对象。sp_helptextsp_depends6、 使用T-SQL语句创建一个名为“删除读者信息_PROC”的存储过程,要求根据所提供的读者编号,删除该编号所对应的读者,如果不存在此编号的读者,则显示“该编号
6、的读者不存在!”。创建完成之后,执行上述存储过程,观察执行结果。create proc 删除读者信息_PROC1dzbh char(10)asbegin if exists(select * from tb_reader where 读者编号=dzbh) begin delete from tb_borrow where 读者编号=dzbh delete from tb_reader where 读者编号=dzbh end else print 该编号的读者不存在!endexec 删除读者信息_PROC1 R100107、 使用T-SQL语句创建一个名为“修改借阅信息_PROC”的存储过程,要
7、求根据所提供的读者编号和天数,将该读者的归还日期增加相应的天数,如果不存在该读者的借阅信息,则显示“该读者没有借阅图书!”。创建完成之后,执行上述存储过程,观察执行结果。create proc 修改借阅信息_PROC1dzbh char(10),ts intasbegin if exists(select * from tb_borrow where 读者编号=dzbh) update tb_borrow set 归还日期=dateadd(day,ts,归还日期) where 读者编号=dzbh else print 该读者没有借阅图书!end-exec 修改借阅信息_PROC1 ts=3,d
8、zbh=R100038、 使用管理控制台删除“读者借阅信息_PROC”存储过程。9、 使用T-SQL语言删除“计算机系借阅信息_PROC1”存储过程。drop proc 计算机系借阅信息_PROC1(三)练习创建和管理触发器1、使用管理控制台创建一个名为“读者信息插入_TRIG”的触发器,要求在“读者信息表”表中插入一条新记录时触发该触发器,并给出“插入了一条新记录!”的提示信息。并在“读者信息表”中插入一条记录查看显示结果。2、使用T-SQL语句创建一个名为“借阅信息插入修改_TRIG”的触发器,要求在“借阅信息表”中插入或修改记录时触发该触发器,检查“归还日期”是否超过2011年12月31
9、日,如果超过给出相应提示,提示中给出“归还日期”超过2011年12月31日的“图书编号”和“读者编号”。create trigger 借阅信息插入修改_TRIGon tb_borrowfor insert,updateasbegindeclare date datetime,bookno char(10),readerno char(10)select date=归还日期,bookno=图书编号,readerno 读者编号from insertedif date2011-12-31beginprint date more than 2011-12-31select bookno 图书编号,re
10、aderno 读者编号endendinsert into tb_borrow values(10011,R10004,2011-11-4,2012-2-2)3、使用T-SQL语句实现该数据库中各表间的级联删除。4、使用T-SQL语句创建一个插入、更新类型的触发器“图书信息_TRIG”,当图书信息表中插入或修改记录时,触发该触发器,检查库存册数是否大于0,若小于0,则撤销插入和修改操作。create trigger 图书信息_TRIGon tb_bookfor insert,updateasbegein print begin trigger declare kccs int select kccs=库存数from inserted if kccs0 rollbackendinsert into tb_book values(11001,2,eee,ddd,ggg,29,-1)update tb_book set 库存数=-2 where 图书编号=100025、使用管理控制台查看“读者信息插入_TRIG”触发器的依赖的对象。6、使用系统存储过程查看“借阅信息插入修改_TRIG”触发器的定义信息和依赖的对象。7、使用管理控制台删除“读者信息插入_TRIG”触发器。8、使用T-SQL语言删除“借阅信息插入修改_TRIG”触发器。drop trigger 借阅信息插入修改_TRIG
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100