


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五:触发器和存储过程一、实验目的:理解触发器和存储过程的含义,掌握用SQL语句实现触发器和存储过程的编写,并初步掌握什么情况下使用事务。二、预习要求:存储过程和触发器的相关概念,事务的相关概念,编写相应的SQL语句。三、实验内容:有一个小型的图书管理数据库,包含的表为:bookstore(bookid,bookname,bookauthor,purchasedate,state);-图书库存表borrowcard(cardid,ownername);-借书证表borrowlog(cardid,bookid,borrowdate,returndate);-借书记录表写一个存储过程,实现借书操作,要求有事务处理。(1)读者借书,要先设置书籍不在库标志state(借出),然后增加借书记录,在同一事务中完成。 (2)要求在事务执行过程中引入错误触发事件,以此体会事务的错误保护机制和事务编程的作用。(3)要求用触发器实现表的完整性控制。四、完成情况(附上设计的SQL语句)。 -触发器和存储过程 -触发器和存储过程CREATE DATABASE BOOK1gouse BOOK1CREATE TABLE BOOKSTORE(Bookid nvarchar(10),Bookname nvarchar(10),Bookauthor nvarchar(10),purchasedate datetime,state Nvarchar(10),primary key(Bookid)Create table Borrowcard(Cardid int,ownername nvarchar(10),primary key(Cardid)Create table Borrowlog(Cardid int,Bookid nvarchar(10),borrowdate datetime,returndate datetime,primary key(Cardid,Bookid)insert into Borrowcard values(12,wyb)insert into Borrowcard values(123,wyb)insert into Borrowcard values(1,wyb)insert into Bookstore values(1,数据库,王珊,2012-04-23,存在)insert into Bookstore values(2,数据结构,珊,2012-11-23,存在)insert into Bookstore values(3,数据结构,珊,2011-1-23,存在)insert into Bookstore values(11,数据库,王珊,2009-10-23,存在)insert into Bookstore values(12,数据结构,珊,2001-11-23,存在)insert into Bookstore values(13,数据结构,珊,2013-12-23,存在)-借书存储过程create proc borrow1 bookid nvarchar(10), cardid int asbegin transactioninsert into Borrowlog(Cardid,Bookid,borrowdate,returndate) values(cardid,bookid,getdate(),null)if exists(select * from bookstore,Borrowcard where bookid=bookid and state=存在 and cardid=cardid)begin update bookstore set state=不存在 where bookid=bookidcommit transactionendelsebegin if exists(select * from bookstore where bookid=bookid and state=不存在)Print 不存在该书if not exists(select*from borrowcard,bookstore where cardid=cardid)Print 没有此用户rollback transactionEndexec borrow1 3,12exec borrow1 3,123exec borrow1 2,123drop proc borrow1 -删除存储过程Create trigger insert_borrowlogon Borrowlog after insertasdeclare borrowdate datetime,returndate datetimeselect borrowdate=borrowdate,returndate=returndate from insertedif(borrowdatereturndate)print 借书时间不可晚于还书时间rollbackselect * from bookstoreinsert into Borrowlog values(12,1,2013-06-06,2012-05-5)五、 思考题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高校教师资格证之高等教育心理学考试题库附答案
- 2025年高级钳工考试试题及答案
- 2025年高级经济师工商管理真题解析
- 食安培训试题及答案
- 中央会议规范管理办法
- 贷款变更还本管理办法
- 中央集中采购管理办法
- 业务发展管理办法试行
- 专项工作考核管理办法
- 视频监控应用管理办法
- 07J902-3 医疗建筑(卫生间、淋浴间、洗池)
- 2024年网上大学智能云服务交付工程师认证考试题库800题(含答案)
- SJG 110-2022 附建式变电站设计防火标准
- 《中式烹调工艺》课件-热菜烹调工艺
- 中华民族共同体概论课件专家版2第二讲 树立正确的中华民族历史观
- 仓库发错货的解决方案
- 金属冶炼安全事故案例与分析
- 南京市2023-2024高一上学期期末英语试卷及答案
- 输液泵、微量泵技术操作规程及评分标准
- 数字孪生及车间实践第三篇数字孪生车间
- 时间像小马车课件
评论
0/150
提交评论