我正在查看存储过程,我在下面找到了一段代码。看一下代码,我的看法是我们正在创建一个名为@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
答案 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