Ошибка конверсии при преобразовании значения varchar '****' в тип данных int

108
12

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

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

"Ошибка конверсии при преобразовании значения varchar" My_41.png "в тип данных int".

imageID объявляется как varchar (300) в tbl_itemImage @ReturnValue объявляется как varchar (MAX)

Вставка и обновление выполняются хорошо, а данные также хранятся в таблице. Но в конце, когда выполняется запрос SELECT, он дает мне ошибку выше.

Это моя ЗАПОМНЕННАЯ ПРОЦЕДУРА

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

спросил(а) 2021-01-25T20:21:38+03:00 4 месяца, 2 недели назад
1
Решение
77

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

Богдан Сахлеян

Должен быть ответом.

ответил(а) 2021-01-25T20:21:38+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема