1

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

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

任何想法如何克服这个问题?

4

1 回答 1

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
于 2010-05-10T10:10:47.027 回答