sql sever列名或所提供值的数目与表定义不匹配

消息 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)可能存在多个值,所以他不晓得选哪一个了。

有人解答一下吗