如何将存储过程输出到T-SQL中的函数内的变量中?

时间:2010-05-10 10:00:15

标签: sql-server tsql stored-procedures dynamic-sql user-defined-functions

我有一个任务,只能通过在运行时构建QUERY并使用sp_executesql执行它来完成。结果必须是一个布尔值(0/1整数)值,我需要返回该值作为函数的结果。

我发现捕获SP输出的唯一方法是“INSERT INTO [table] EXECUTE [sp]”查询,但函数禁止这样做。

任何想法如何克服这个?

1 个答案:

答案 0 :(得分:3)

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