2013-01-16 39 views
0

任何人都知道在执行sp_executesql的过程中是否可以更改输入变量?我可以在执行sp_executesql时更改输入参数值吗?

例如,我想改变@var值“再见”

declare @var varchar(10) = 'hello' 
declare @Query nvarchar(max) = 'print @var set @var = ''bye'' print @var' 

EXEC SP_EXECUTESQL @Query, N'@var varchar(10)', @var -- Execute Query Statement 

print @var 

我最后一次做打印@var,我期待它打印的“再见”,但印有“你好”。

可以达到我的目的而无需声明输出变量?

在此先感谢

回答

2

你必须使用一个output参数,而不是:

declare @var varchar(10) = 'hello' 
declare @Query nvarchar(max) = 'print @var set @var = ''bye'' print @var' 
EXEC SP_EXECUTESQL @Query, N'@var varchar(10) output', @var output 
print @var -- This prints bye 

注意输出既变量的声明,并sp_executesql实际参数。

+0

哦......这很简单!谢谢! – user1984019

相关问题