2009-09-07 68 views
0

在Oracle中,您可以在腳本中使用VAR_NAME,然後腳本會在運行時詢問您的值。sql server - 在運行時設置變量

在SQLSERVER可以使用$(VAR_NAME),並使用引用屬性文件:

:r c:/TEMP/sqlserver.properties 

And in the property file you have something like: 

    :setvar VAR_NAME_some_value 

你能做到& & VAR_NAME相當於使該腳本會詢問你的價值,當你運行它,而不是具有在腳本中預定義的值。

回答

1

如果我理解正確的話,你在談論variable substitution with the SQLCMD utility

我看不到SQLCMD支持您描述的行爲。

另一種方法是利用SQLCMD將替換系統或用戶環境變量的值(參見上面的鏈接),並創建一個包裝CMD腳本,該腳本使用SET with the /P flag提示用戶輸入變量值。

0

沒有什麼像這樣的SQL服務器,你應該預先定義的所有參數值使用它們,這樣才:

DECLARE @i SMALLINT 
SET @i = 1 
0

彈出窗體並詢問參數的問題是,您通常需要更多地控制窗體的屬性,即使對於管理腳本也是如此。我會在Powershell或Python腳本中使用SQLCMD中的變量替換,以便爲運行該腳本的人提供更好,更有用的表單。這將會產生非常強大的組合。

在SSMS中,您可以使用模板變量替換完成很多工作,但這隻會涉及到制定正確的SQL來執行。那麼你就必須按下按鈕。在開發環境之外它會有點笨重!