Ошибка преобразования при преобразовании значения varchar '****' в тип данных int - PullRequest
0 голосов
/ 27 марта 2012

Я использую хранимую процедуру в Sql Server 2005.

Я получаю эту ошибку:

"Преобразование не удалось при преобразовании значения varchar 'My_41.png' в тип данных int."

imageID объявлен как varchar (300) в tbl_itemImage @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 Ответ

2 голосов
/ 27 марта 2012

Значение, возвращаемое оператором RETURN (msdn.microsoft.com/en-us/library/ms174998.aspx), должно быть INT, а не VARCHAR (MAX). Вместо этого используйте параметры OUTPUT (msdn.microsoft.com/en-us/library/ms187926.aspx). В любом случае, RETURN IntValue следует использовать для возврата кода ошибки

Богдан Сахлин

Должен быть в качестве ответа.

...