【问题标题】:How do I get an stored procedure output into a variable inside a function in T-SQL?如何将存储过程输出到 T-SQL 中函数内的变量中?
【发布时间】:2011-02-17 14:36:09
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      • 2013-04-14
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多