+ -
当前位置:首页 → 问答吧 → 哪个好心人 帮我做做16.18,19 用SQL server 2005使用sql语句实现

哪个好心人 帮我做做16.18,19 用SQL server 2005使用sql语句实现

时间:2011-12-06

来源:互联网

CARD(借书卡) CNO(卡号),NAME(姓名),CLASS(班级)
BOOKS(图书) BNO(书号),BNAME(书名),AUTHOR(作者),PRICE(单价),QUANTITY(库存册数) 
BORROW(借书记录) CNO(借书卡号),BNO(书号),RDATE(还书日期)
备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。
CARD(借书卡) CNO(卡号),NAME(姓名),CLASS(班级)
BOOKS(图书) BNO(书号),BNAME(书名),AUTHOR(作者),PRICE(单价),QUANTITY(库存册数) 
BORROW(借书记录) CNO(借书卡号),BNO(书号),RDATE(还书日期)
备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。
18. 创建触发器,当用户在BOOKS表中插入书籍信息时检查该书籍名称是否存在,如果存在提示用户。
19. 创建存储过程,当删除一个借书证号是,检查该卡号是否借阅书籍,如果有借阅书籍信息,提示用户不能删除。
16. 在BOORROW表中创建触发器,当学生借阅书籍时在BOOKS表中将相应册数减一,当册数为0时,提示用户不能借阅书籍。

作者: lbw33668899   发布时间: 2011-12-06

这些题最好在客户端实现
sql server触发器里的提示不太好传递到客户端

作者: pengxuan   发布时间: 2011-12-06

SQL code
create tigger test on boorrow
for update
as
begin
if exists(select 1 from books b join inserted i on b.bno=i.bno where b.QUANTITY>0)
update b set QUANTITY=QUANTITY-1 from books b join inserted i on b.bno=i.bno
else
print '不能借阅书籍'
end

作者: fredrickhu   发布时间: 2011-12-06

SQL code
create tigger test on books
for insert 
as
begin
if exists(select 1 from inserted where BNAME=@BNAME)
print '该书籍已经存在'
else
insert into books select ....
end

作者: fredrickhu   发布时间: 2011-12-06