簡體   English   中英

路徑中的SQLCMD變量

[英]SQLCMD variable in path

我正在使用一些我希望可重用的SQL腳本,因此我需要使用一些變量。

我有一個使用sqlcmd運行sql腳本的bat腳本

sqlcmd -S <SERVER> -v PROJECT="<PROJECTNAME>" -i .\start.sql

在start.sql腳本中,我執行另一個sql腳本,如下所示:

:r .\<PROJECTNAME>\init.sql

因此,我已經硬編碼了變量的值,並且效果很好。 我想使用變量本身,但無法正常工作。

:r .\$(PROJECT)\init.sql

最后一行是我認為可行的內容。 通過執行以下操作,我測試了打印出變量PROJECT中的值:

PRINT '$(PROJECT)'

這給了我變量的值。

希望任何人都可以幫助我使用變量來執行文件夾中的腳本。

提前致謝。

編輯:打印$(PROJECT)給出以下錯誤消息:在這種情況下不允許使用名稱“ XXX”。 有效表達式是常量,常量表達式和(在某些情況下)變量。 不允許使用列名。

XXX =變量的值。

我做了一個小實驗,因為我知道我現在已經設法獲得了與此類似的語法來為我工作。 我發現,如果我復制了您所做的工作,則會出現以下錯誤:

發生致命的腳本錯誤。 在為“:r”命令指定的路徑中找不到目錄。

如果相反,我將整個路徑放入變量中-它起作用。 因此,嘗試將您的.sql文件更改為此:

:r $(PROJECT_FILE_NAME)

然后像這樣從SQLCMD調用它:

sqlcmd -S <SERVER> -v PROJECT_FILE_NAME=".\<PROJECTNAME>\init.sql" -i .\start.sql

當我采用這種方法時,它運行文件init.sql時沒有錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM