《数据库第三次大作业(全答案).pdf》由会员分享,可在线阅读,更多相关《数据库第三次大作业(全答案).pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 4 4作业作业 3 3存储过程与触发器设计任务存储过程与触发器设计任务任务:任务:1)为 BookStore 数据库增加一个用户 oper1,允许 oper1 对图书表和借还表进行修改操作。use BookStoregoexec sp_addlogin operl,(此处为密码),BookStoregoexec sp_addrolemember db_datareader,operl】grant update on 图书表 to operlgrant update on 借还表 to operl2 2)设计存储过程设计存储过程a)数据初始化过程 sp_Init。包含的操作有:所有的用于测试图
2、书信息、教师信息、历史记录清空,输入图书分类、输入管理员信息、输入借书规定。略,界面进行输入或者代码输入作业用数据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,atime)endc)某教师在某时间还了某本书,由某管理员办理cre
3、ate 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),cid char(10)asbeginselect b.姓名,c.书名,a.借出日期,
4、归还日期from 借还表 a join 教师表 b on a.教师工号=b.教师工号 join 图书表 c on=where b.姓名=cname or b.教师工号=cidende)。f)查看某本书的历史流转记录create procedure proc_getBooklogbookname nchar(10),ISBN char(20)asbeginselect 教师表.姓名,图书表.书名,借还表.借出日期,归还日期from 借还表 a join 教师表 b on a.教师工号=b.教师工号 join 图书表 c on=where=ISBN or c.书名=booknameendg)某管理
5、员在某时间给全部借阅过期者发催还邮件。部分有错误的需要将修改催还业务编号为自增长(identity(1,1),还有整个表都要允许空值:例:alter table 催还表alter column 办代理人 char(4)null、dname char(4),dtime datetimeasbegininsert into 催还表(教师工号)select 教师工号from 借还表 a join 图书表 b on=join 类型表 c on b.类型名=c.类型名:where datediff(day,a.借出日期,getdate()c.借阅期限 and a.归还日期 is nullupdate 催还表set 办代理人=dname,催还日期=dtimewhere 催还日期 is nullendcreate procedure proc_writeEmailLogg)对书名进行模糊搜索(搜索条件可以是多个模糊列值的组合,例如:搜索书名包含“网络”两个字,并且是近3年出版的图书)create procedure proc_searchbookname nchar(10),max tinyintasbeginselect*from 图书表where datediff(year,出版时间,getdate()0rollbackend
限制150内