Задайте возвращаемое значение SP переменной в SQL Server
У меня есть sproc, который возвращает одну строку и столбец с текстом, мне нужно установить этот текст в переменную, что-то вроде:
declare @bla varchar(100)
select @bla = sp_Name 9999, 99989999, 'A', 'S', null
но, конечно, этот код не работает...
спасибо!
Ответы
Ответ 1
Если вы не можете изменить хранимую процедуру, другим решением будет определение временной таблицы и вставка результатов в это
DECLARE @Output VARCHAR(100)
CREATE TABLE #tmpTable
(
OutputValue VARCHAR(100)
)
INSERT INTO #tmpTable (OutputValue)
EXEC dbo.sp_name 9999, 99989999, 'A', 'S', null
SELECT
@Output = OutputValue
FROM
#tmpTable
DROP TABLE #tmpTable
Ответ 2
Если хранимая процедура возвращает одно значение, вы можете определить один из параметров хранимой процедуры как переменную OUTPUT, а затем хранимая процедура установит значение параметра
CREATE PROCEDURE dbo.sp_Name
@In INT,
@Out VARCHAR(100) OUTPUT
AS
BEGIN
SELECT @Out = 'Test'
END
GO
И затем вы получите выходное значение следующим образом
DECLARE @OUT VARCHAR(100)
EXEC sp_name 1, @Out OUTPUT
PRINT @Out
Ответ 3
DECLARE
@out INT
EXEC @out = sp_name 'param', 2, ...
Дополнительная информация в T-SQL "EXECUTE" help (Справка из MSSQL 2008, но это работает и в 2000 году)