我使用SQL Server存儲過程2005年轉換失敗「****」爲int數據類型
我收到此錯誤:
"Conversion failed when converting the varchar value 'My_41.png' to data type int."
圖像標識聲明as 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
RETURN語句(http://msdn.microsoft.com/zh-cn/library/ms174998.aspx)返回的值應該是INT not VARCHAR(MAX)。相反,請使用OUTPUT參數(http://msdn.microsoft.com/zh-cn/library/ms187926.aspx)。無論如何,'RETURN IntValue'應該用來返回一個錯誤代碼。 – 2012-03-27 07:32:33
永遠不要使用@@ identity - 使用scope_identity()或者output子句。如果您在此表上插入帶有標識的另一個表的觸發器,則@@ identity將返回錯誤的值,這會使數據完整性無法修復。 – HLGEM 2012-03-27 20:10:06