2012-11-01 61 views
0

我從SSMS 2008R2運行此SQLCMD模式啓用此。來自SSMS的sqlcmd模式 - setvar賦值給一個替代變量可能嗎?

與下面的代碼:

:SETVAR GREETING "HELLO" 
:SETVAR SALUTATION $(GREETING) 

SELECT '$(GREETING)' 
SELECT '$(SALUTATION)' 

我在結果中看到以下內容:

HELLO 
$(GREETING) 

我希望看到:

HELLO 
HELLO 

有沒有辦法有另一個腳本變量的賦值中的腳本變量?如果是這樣,語法是什麼?

回答

2

變量替換:SETVAR不起作用,因爲在這種情況下它只是一個令牌替換。

您可以模擬你想象得那麼此行爲:

:SETVAR GREETING "HELLO" 

DECLARE @salutation VARCHAR(5) = $(GREETING); 
SELECT @salutation; 

問候。

0

你也可以做相反的事情,如果你需要:

DECLARE @firstVar VARCHAR(30) = 'theUltimateValue'; 

:setvar secondValue @firstVar 

select $(secondValue) as whatIReallyWant 

返回

whatIReallyWant 
------------------------------ 
theUltimateValue