我建了个存储过程:
ALTER procedure tbc_CopyBookBusToBookOrder
@Ids int
as
insert into tbc_BookOrder(OrderTime,Price,BookNumber,UserId,BookId)
select OrderTime=getdate(),(select price from tbb_Book where tbb_Book.id=tbc_BookBus.bookid) as Price,BookNumber,UserId,BookId
from tbc_BookBus
where id in (@Ids)
执行:exec tbc_CopyBookBusToBookOrder @Ids='66'
可以成功!但执行
exec tbc_CopyBookBusToBookOrder @Ids='66,70'就出错:将数据类型 varchar 转换为 int 时出错。
高手来看啊

解决方案 »

  1.   

    exec tbc_CopyBookBusToBookOrder @Ids='66'
    exec tbc_CopyBookBusToBookOrder @Ids='70'
      

  2.   

    "exec tbc_CopyBookBusToBookOrder @Ids='66,70'就出错:将数据类型 varchar 转换为 int 时出错。"id是int类型,@Ids='66,70'赋的值是一个字符串,所以就会“varchar 转换为 int 时出错”
      

  3.   

    ALTER procedure tbc_CopyBookBusToBookOrder
    @Ids varchar(10)
      

  4.   

    还有没有人啊?
    Ids必须是'66,70'的怎么办啊