如何在动态sql查询中传递输出变量

时间:2012-11-07 11:21:51

标签: sql sql-server dynamic-sql

我正在查看存储过程,我在下面找到了一段代码。看一下代码,我的看法是我们正在创建一个名为@QuestionInclude的变量,并在动态sql语句中传递它的值。但是这段代码是如何工作的?

这对我来说是个蠢货和新事物。

declare @QuestionInclude varchar(10)
select @sqln =  'select @QuestionInclude = 1 from ##Stg_Prelim' 
exec sp_executesql @sqln,N'@QuestionInclude varchar(10) output',@QuestionInclude output

1 个答案:

答案 0 :(得分:1)

可能会帮助你

http://msdn.microsoft.com/en-us/library/ms188001.aspx

过程sp_executesql有参数@stmt,这是要运行的实际语句,@params - 参数声明,然后是@params

中声明的所有参数

最好按名称传递参数

declare @QuestionInclude varchar(10), @stmt nvarchar(max), @params nvarchar(max)

select @stmt = 'select @QuestionInclude = 1 from ##Stg_Prelim'
select @params = '@QuestionInclude varchar(10) output'

exec sp_executesql
    @stmt = @stmt,
    @params = @params,
    @QuestionInclude = @QuestionInclude output