alter PROCEDURE PrTradingDelete @id VARCHAR(4000) AS BEGIN UPDATE dbo.Trading SET IsDel=1 WHERE id in(@id) END GO
执行上面这个存储过程会异常。提示 :在将 varchar 值 '1,2,3,4,5,6,7,8' 转换成数据类型 int 时失败。
将存储过程更改为:
alter PROCEDURE PrTradingDelete @id VARCHAR(4000) AS BEGIN UPDATE dbo.Trading SET IsDel=1 WHERE charindex(rtrim(id), @id)>0; END GO
可以正常执行了。