Как получить вывод хранимой процедуры в переменную внутри функции в T-SQL? - PullRequest
1 голос
/ 10 мая 2010

У меня есть задача, которая может быть выполнена только путем построения QUERY во время выполнения и выполнения его с помощью sp_executesql. Результатом должно быть логическое (0/1 целое) значение, которое мне нужно вернуть в результате выполнения функции.

Единственный способ, который я нашел для захвата вывода SP - это запрос INSERT INTO [table] EXECUTE [sp], но функции запрещают это.

Есть идеи, как это преодолеть?

1 Ответ

3 голосов
/ 10 мая 2010

sp_executesql позволяет передавать параметры, а также объявлять параметры как выходные. Просто посмотрите на этот простой пример, который не очень динамичен, но показывает, как выходные параметры для sp_executesql работают

declare @sql nvarchar(max)
declare @user sysname

select @sql = 'SELECT @user = SYSTEM_USER'

exec sp_executesql @sql, N'@user sysname OUTPUT', @user OUTPUT

select @user
...