数据库第三次大作业(全答案)_第1页
数据库第三次大作业(全答案)_第2页
数据库第三次大作业(全答案)_第3页
数据库第三次大作业(全答案)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上4 作业3存储过程与触发器设计任务任务:1) 为BookStore数据库增加一个用户oper1,允许oper1对图书表和借还表进行修改操作。 use BookStoregoexec sp_addlogin operl,'(此处为密码)','BookStore'goexec sp_addrolemember 'db_datareader','operl'grant update on 图书表 to operlgrant update on 借还表 to operl2) 设计存储过程a) 数据初始化过程sp_

2、Init。包含的操作有:所有的用于测试图书信息、教师信息、历史记录清空,输入图书分类、输入管理员信息、输入借书规定。略,界面进行输入或者代码输入作业用数据b) 某教师在某时间借了某本书,由某管理员办理。 create procedure proc_lendbookaid char(10),atime datetime,ISBN char(20),aname nchar(4)asbeginupdate 图书表set 状态='借出'where ISBN=ISBNinsert into 借还表(ISBN,教师工号,借办代理人,借出日期)values(ISBN,aid,aname,at

3、ime)endc) 某教师在某时间还了某本书,由某管理员办理 create procedure proc_returnbookbid char(10),btime datetime,ISBN char(20),bname nchar(4)asbeginupdate 图书表set 状态='库存'where ISBN=ISBNupdate 借还表set 还办代理人=bname,归还日期=btimewhere 教师工号=bid and ISBN=ISBNendd) 查看某人的全部借还书记录 create procedure proc_getReaderlogcname nchar(4

4、),cid char(10)asbeginselect b.姓名,c.书名,a.借出日期,归还日期from 借还表 a join 教师表 b on a.教师工号=b.教师工号 join 图书表 c on a.ISBN=c.ISBNwhere b.姓名=cname or b.教师工号=cidende) 查看某本书的历史流转记录 create procedure proc_getBooklogbookname nchar(10),ISBN char(20)asbeginselect 教师表.姓名,图书表.书名,借还表.借出日期,归还日期from 借还表 a join 教师表 b on a.教师工号

5、=b.教师工号 join 图书表 c on a.ISBN=c.ISBNwhere a.ISBN=ISBN or c.书名=booknameendf) 某管理员在某时间给全部借阅过期者发催还邮件。 部分有错误的需要将修改催还业务编号为自增长(identity(1,1),还有整个表都要允许空值:例:alter table 催还表alter column 办代理人 char(4) null create procedure proc_writeEmailLogdname char(4),dtime datetimeasbegininsert into 催还表(教师工号)select 教师工号from

6、 借还表 a join 图书表 b on a.ISBN=b.ISBN join 类型表 c on b.类型名=c.类型名where datediff(day, a.借出日期,getdate()>c.借阅期限 and a.归还日期 is nullupdate 催还表set 办代理人=dname,催还日期=dtimewhere 催还日期 is nullend g)对书名进行模糊搜索(搜索条件可以是多个模糊列值的组合,例如:搜索书名包含“网络”两个字,并且是近3年出版的图书) create procedure proc_searchbookname nchar(10),max tinyinta

7、sbeginselect *from 图书表where datediff(year,出版时间,getdate()<max and 书名 like '%'+bookname+'%' end3) 设计触发器a) 当oper1用户对图书状态进行修改时,自动在借还表追加相应的数据。 create trigger tri_aon 图书表 after updateasdeclare status char(4)declare ISBN char(20)select status=状态 from insertedselect ISBN=ISBN from insertedif user_name()='operl'beginif status='借出'insert into 借还表(ISBN,借办代理人,借出日期)values(ISBN,user_name(),getdate()else if status='库存'update 借还表set 还办代理人=user_name(),归还日期=getdate()where ISBN=ISBNendb) 不允许oper1用户对催还表信息进行删除操作,如果删除进行回滚。 create tr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论