0

任何人都知道是否可以在执行 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 时,我期待它打印'再见',但打印'你好'。

可以在不声明输出变量的情况下实现我的目标吗?

提前致谢

4

1 回答 1

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.

于 2013-01-16T14:50:44.243 回答