2013-01-16 78 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

相關問題