2011-09-14 39 views
2

連接使用SQLCMD嘗試連接到活動服務器我發現,這些都沒問題:SQLCMD:使用變量和反斜槓

:connect myServer\myInstanceName -U myLogin -P myPassword 

:setvar INSTANCE myInstanceName 
:connect $(INSTANCE) -U myLogin -P myPassword 

這不:

:setvar serv myServer 
:setvar inst myInstance 
:connect $(serv)\$(inst) -U myLogin -P myPassword 

它拋出這個作爲語法錯誤,我懷疑是因爲它認爲反斜槓是一個轉義字符。

這樣做不會幫助:

:connect '$(serv)\$(inst)' -U myLogin -P myPassword 

而且也沒有這樣的:

:connect $(serv)\\\\$(inst) -U myLogin -P myPassword 

而且我想不通SQLCMD應該如何來連接變量,所以我不能作爲一個變量傳遞整個事物。如果你嘗試設置這樣的變量:

:setvar serv myServer 
:setvar myVariable $(serv)\ 

然後它的字面規定MYVARIABLE是「$(SERV)\」,這是不是一個很大的幫助。

任何幫助?

回答

0

我發現這個最好的解決辦法是設置使用PowerShell或DOS腳本變量。

1

難道你們就不能使用類似

:setvar serverandinstance server\instance 
:connect $(serverandinstance) 
+0

否。因爲服務器和實例的名稱被設置爲環境變量,並且您不能在sqlcmd中設置另一個變量的變量值。我已經通過使用DOS命令設置變量來暫時解決這個問題,但它並不理想。 –