[英]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.