在将 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 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

可以正常执行了。

上一篇:boolean和Boolean, char和Character , byte和Byte, short和Short, int和Integer , long和Long , float和Float, double和Double的区别 , String和StringBuffer的区别


下一篇:颜色(color)转换为三刺激值(r/g/b)(干股)