消息 213,级别 16,状态 1,过程 usp_BorrowBook,行 36 [批起始行 2]
列名或所提供值的数目与表定义不匹配。(这个怎么解决!!1)
这是我sql sever的代码
use BookDB
GO
ALTER procedure usp_BorrowBook
@rdID char(9),
@bkID char(9)
as
if not exists(select * from Book where @bkID in (select bkID from Book))
begin
raiserror('图书馆没有该书,借阅失败',10,1)
return
end
if not exists(select * from Reader where @rdID in (select rdID from Reader))
begin
raiserror('图书馆没有该读者,借阅失败',16,1)WITH NOWAIT
return
end
declare @bkStatus int
select @bkStatus = bkStatus from Book where bkID = @bkID
if @bkStatus =0
begin
raiserror('该书不在馆,无法借阅',16,1)WITH NOWAIT
return
end
declare @rdBorrowQty int,@canLendQty int
select @rdBorrowQty = rdBorrowQty from Reader where rdID = @rdID
select @canLendQty = canLendQty from ReaderType where rdType =
(select rdType from Reader where rdID = @rdID)
if @rdBorrowQty = @canLendQty
begin
raiserror('抱歉!你所借书的数量已经达到最大借书数量!借阅失败!',16,1) WITH NOWAIT
return
end
update Book set bkStatus = 0 where bkID = @bkID
update Reader set rdBorrowQty = rdBorrowQty + 1 where rdID = @rdID
declare @canLendDay int
select @canLendDay = canLendDay from ReaderType where rdType =
(select rdType from Reader where rdID = @rdID)
insert into Borrow values(@rdID,@bkID,GETDATE(), DATEADD (dd,
@canLendDay,GETDATE()))
exec usp_BorrowBook 'rd2019002','bk2019002'
select @canLendDay = canLendDay from ReaderType where rdType =(select rdType from Reader where rdID = @rdID)
(select rdType from Reader where rdID = @rdID)可能存在多个值,所以他不晓得选哪一个了。
有人解答一下吗