




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验五:触发器和存储过程一实验目的:理解触发器和存储过程的含义,掌握用SQL语句实现触发器和存储过程的编写,并初步掌握什么情况下使用事务。二实验内容:有一个小型的图书管理数据库,包含的表为:bookstore(bookid,bookname,bookauthor,purchasedate,state);-图书库存表borrowcard(cardid,ownername);-借书证表borrowlog(cardid,bookid,borrowdate,returndate);-借书记录表写一个存储过程,实现借书操作,要求有事务处理。(1)读者借书,要先设置书籍不在库标志state(借出),然后增
2、加借书记录,在同一事务中完成。 (2)要求在事务执行过程中引入错误触发事件,以此体会事务的错误保护机制和事务编程的作用。(3)要求用触发器实现表的完整性控制。 三、操作与运行1.创建图书数据库:create table bookstore(bookid int not null primary key,bookname char(20),bookauthor char(20),purchasedate datetime,state char(4)create table borrowcard(cardid int not null primary key,ownername char(20)c
3、reate table borrowlog(cardid int not null,bookid int not null,borrowdate datetime,returndate datetime,primary key(cardid,bookid),-foreign key(cardid)references borrowcard(cardid),-foreign key(bookid)references bookstore(bookid)通过以上语句,可以看到数据库中的表建立成功。2.创建存储过程:create proc book_borrowmycardid_in int,myb
4、ookid_in int,str_out char(30) outputasbeginif not exists(select * from borrowcard where cardid=mycardid_in) beginset str_out=该读者不存在returnendif(select state from bookstore where bookid=mybookid_in)=借出 beginset str_out=该书以借出endbegin traninsert into borrowlog values(mycardid_in,mybookid_in,getdate(),nu
5、ll)if error0beginrollback transet str_out=执行过程中遇到错误!returnendupdate bookstore set state=借出 where bookid=mybookid_inif error0beginrollback transet str_out=执行过程中遇到错误!returnendif error=0begincommit transet str_out=借书成功!return 1elsebeginrollback transet str_out=执行过程中遇到错误!returnendEnd查看执行结果:执行存储过程:当违反参照完
6、整性时:declare str_out char(30)exec book_borrow 1114060119,106,str_out outputprint 执行情况 + str_out当图书已借出时执行结果会是:declare str_out char(30)exec book_borrow 1114060114,102,str_out outputprint 执行情况 + str_out当正常执行时(即不违反完整性时):原先的借书记录有:正常借书时:declare str_out char(30)exec book_borrow 1114060116,105,str_out output
7、print 执行情况 + str_out查看借书记录:查看图书在库状态:由此可知借书成功。3.创建触发器:create trigger delete_borrowlogon bookstorefor deleteas begindelete from borrowlog where bookid in(select bookid from deleted)End执行:deletefrom bookstorewhere bookid=102结果:查看结束记录情况:可知删除触发器创建成功。create trigger update_borrowlogon bookstorefor updateas
8、 begindeclare old_bookid int,new_bookid intselect old_bookid=bookid from deletedselect new_bookid=bookid from insertedupdate borrowlog set bookid=new_bookid where bookid=old_bookidEnd执行:update bookstoreset bookid=119where bookid=105结果:可见更新触发器创建成功。四问题及解决:创建存储过程时不知道如何检查违反完整性的操作,最后知道可以用iferror0来检查。创建触发器时刚开始不能创建成,根据提示知道原来在建表时已经设置了外键,所以弃掉就可以了。五思考题:如何通过系统的设置实现类似的功能,而不需触发器? 答:可以使用企业管理其中可视化的建表方法,也可以使用sql语句来在表中增加外键约束就可以了。六实验总结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- XX学校民主生活会个人剖析材料模板2
- 装修提升工程合同范本
- 原水供水协议合同范本
- 厨房剪刀回购合同范本
- 劳务合同范例电工
- 劳务协议押金合同范本
- 网络安全管理员模拟题含答案
- 化工单元操作模拟试题含答案
- 厂房建造木工施工合同范例
- 人保寿险合同范本
- 2025年江苏南京技师学院招聘工作人员19人高频重点模拟试卷提升(共500题附带答案详解)
- 华东师大版七年级数学下册“第1周周考”
- DBJ50-T-385-2023半柔性复合路面技术标准
- 职业院校教师人工智能素养:内涵流变、框架构建与生成路径
- 如何在初中数学教学中提升学生的核心素养
- (完整版)小学一年级数学20以内进退位加减法(1600道题)计算卡
- 2025年包头铁道职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2024年道路运输企业安全生产管理人员证考试题库
- 北京2024年北京市测绘设计研究院面向应届生招聘笔试历年参考题库附带答案详解
- 2025年减速机齿轮项目投资可行性研究分析报告
- 走进李白校本 课程设计
评论
0/150
提交评论