将varchar值'****'转换为数据类型int时转换失败

时间:2012-03-27 07:21:51

标签: sql-server int varchar

我在Sql Server 2005中使用存储过程。

我收到此错误:

  

“将varchar值'My_41.png'转换为数据类型int时转换失败。”

imageID在tbl_itemImage中声明为varchar(300) @ReturnValue声明为varchar(MAX)

插入和更新查询执行良好,数据也存储在表中。 但是在执行SELECT Query时,它会给我一个上面的错误。

这是我的存储程序

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

1 个答案:

答案 0 :(得分:2)

  

RETURN语句(msdn.microsoft.com/en-us/library/ms174998.aspx)返回的值应为INT not VARCHAR(MAX)。相反,请使用OUTPUT参数(msdn.microsoft.com/en-us/library/ms187926.aspx)。无论如何,RETURN IntValue应该用于返回错误代码

由Bogdan Sahlean

应该作为答案。