У меня есть хранимая процедура, которая возвращает целочисленное значение.Вернуть varchar из хранимой процедуры SQL Server
Можно ли вернуть varchar вместо int? Есть ли способ вернуть значение varchar в вызывающие процедуры?
У меня есть хранимая процедура, которая возвращает целочисленное значение.Вернуть varchar из хранимой процедуры SQL Server
Можно ли вернуть varchar вместо int? Есть ли способ вернуть значение varchar в вызывающие процедуры?
У вас есть несколько вариантов:
Либо использовать выходные параметров:
http://msdn.microsoft.com/en-us/library/ms378108.aspx
или просто select
Значения VARCHAR в конце, чтобы вернуть данные в одной строке/таблица с одним полем.
select cast(123 as varchar(11))
Это действительно ускользает от меня, почему везде я перехожу никто не mentios простой факт, что вы можете просто объявить его как этот
CREATE SP_foo
AS
BEGIN
RETURN 'muajaja'
END
GO
Чем вы можете назвать что-то вроде этого:
DECLARE @r varchar(255)
EXEC @r = SP_foo
Я не знаю, упоминает ли NOBODY это так, потому что, вероятно, не является частью стандарта T-SQL per se? Даже MS Docs говорит что-то weird:
RETURN [integer_expression]
целое _expression ли целое значение, которое возвращается. Хранимые процедуры могут возвращать целочисленное значение для процедуры вызова или приложения
Но эй! до тех пор, пока он работает, не так ли?
Downvotes в стороне, он «работает» в MS SQL Server Express 2008 и выше. Даже если это не является частью стандарта T-SQL. Я хорошо знаю параметры OUTPUT. Просто подумал, что я брошу его туда. – percebus
Он, похоже, не работает в 2014 году, потому что он говорит, что не может преобразовать varchar в int – apkisbossin
Вам понадобится '11', чтобы справиться со всем диапазоном -ve целых чисел. –
Спасибо за это. Обновлено. –