Sql-Server
SSDT Publish 因錯誤而失敗,甚至沒有執行任何語句
我的發布嘗試因此錯誤而失敗
消息 205,級別 16,狀態 1,第 7572 行 所有使用 UNION、INTERSECT 或 EXCEPT 運算符組合的查詢必須在其目標列表中具有相同數量的表達式。
採用老式建議在部署腳本執行之間列印狀態消息,我將其範圍縮小到:
由於 SQL Server 怪癖,行號不匹配,這就是為什麼你必須
請注意實際上沒有執行任何語句。我還執行了一個詳細的跟踪,確認沒有執行任何操作:
兩個語句之間的控制流語句怎麼
原來該
GO
語句將成功的程式碼與剩餘的程式碼分開,後者確實包含一個錯誤的語句(根據錯誤消息),因此在語法驗證期間拋出了錯誤。通過獲取
GO
語句的行號並添加錯誤消息中顯示的行號(實際上是批處理中的偏移量),我發現了一個錯誤的MERGE
語句,因為點兩下 SSDT 發布結果中的錯誤消息將我帶到發布腳本中的隨機位置。所以它是由語句批處理引起的,語法驗證最終在部署腳本上執行(排除在 SQL 項目的建構之外)。