Sql server 将varchar值“**”转换为数据类型int时,转换失败
我正在使用SQLServer2005中的存储过程 我得到这个错误: 将varchar值“My_41.png”转换为数据类型int时,转换失败 imageID在tbl_itemImage中声明为varchar300 @ReturnValue声明为varcharMAX Insert和Update查询执行良好,数据也存储在表中。 但在执行SELECT查询的最后,它给出了上面的错误 这是我的存储过程Sql server 将varchar值“**”转换为数据类型int时,转换失败,sql-server,int,varchar,Sql Server,Int,Varchar,我正在使用SQLServer2005中的存储过程 我得到这个错误: 将varchar值“My_41.png”转换为数据类型int时,转换失败 imageID在tbl_itemImage中声明为varchar300 @ReturnValue声明为varcharMAX Insert和Update查询执行良好,数据也存储在表中。 但在执行SELECT查询的最后,它给出了上面的错误 这是我的存储过程 insert into tbl_itemImage(itemID,imageID,name,isCov
insert into
tbl_itemImage(itemID,imageID,name,isCoverImage,createdBy,createdOn)
values
(@itemID,@imageID,@name,@isCoverImage,@ID,getdate())
update tbl_itemImage
set imageID = @imageID + CAST(@@Identity as varchar(10))+ @imageExtension
where itemimageID = @@Identity AND imageID <> ''
DECLARE @ReturnValue varchar(MAX)
select @ReturnValue = imageID from tbl_itemImage where itemImageID = @@Identity
Return @ReturnValue
返回语句msdn.microsoft.com/en-us/library/ms174998.aspx返回的值应为INT而不是VARCHARMAX。请改用输出参数msdn.microsoft.com/en-us/library/ms187926.aspx。无论如何,应该使用RETURN IntValue返回错误代码 博格丹·萨林
应该是一个答案 RETURN语句返回的值应为INT而不是VARCHARMAX。相反,请使用输出参数。无论如何,应该使用RETURN IntValue返回错误代码。不要使用@identity-ever-改用scope\u identity或output子句。如果此表上的触发器插入到另一个具有标识的表中,@@identity将返回错误的值,这将破坏数据的完整性,无法修复。