Sql-Server
為什麼 :r SQLCMD 命令在部署後腳本中標記為錯誤?
我曾多次使用後期部署腳本,並且總是直覺地使用建構操作“PostDeploy”,因為它就是這樣。現在我第一次嘗試按照腳本模板中的內置指令來使用
":r somescript.sql"
語法。這條線立即被標記為錯誤:
“’:’ 旁邊的 SQL80001 語法錯誤”
我找到了將 PDS 設置為“無”建構操作的建議。這沒有幫助,錯誤仍然存在。我在這裡想念什麼?
假設錯誤發生在建構過程中,並且您沒有任何實際的語法錯誤,這是一個簡單的
:r path\to\file.sql
那麼當導入的文件不存在時也會發生錯誤。請檢查文件的位置。如果您沒有提供絕對路徑,那麼該路徑將相對於解決方案文件夾(至少對我來說是這樣)。
如果在開發過程中,您想查看建構過程報告的錯誤,請確保在 Visual Studio 的 T-SQL 編輯器中啟用“SQLCMD 模式”。按鈕欄的最右側有一個帶有“!”的按鈕 在其中應該啟用此功能。或者您可以進入SQL菜單,選擇Transact-SQL Editor ->,選擇Execution Settings ->,最後選擇SQLCMD Mode。現在,當您執行腳本時,它將正確解釋
:r
,就像建構/發布過程一樣。此外,您的 Post Deploy Script (PDS) 需要將其Build Action設置為PostDeploy。如果它設置為None,那麼 SSDT 建構過程將完全跳過它。