Sql-Server
重建表時,SSDT 發布總是會失敗並顯示“可能發生數據失去”嗎?
考慮以下場景:
- 我們有一個 SSDT 數據庫項目。
- 我們在表格的中間添加一個新列。
- 這會強制數據庫項目重建表以部署更改。
- 我們發布此 SSDT 數據庫項目時啟用了“如果可能發生數據失去,則阻止增量部署”設置。
- 因為我們啟用了上述設置,並且(我認為)表正在重建,所以部署(正確)會拋出一個錯誤,指出可能會發生數據失去。
我的問題是:我們是否可以依賴這樣一個事實,即每當表需要作為 SSDT 發布的一部分進行重建時,都會拋出此錯誤?
是的,你可以依靠它。當您啟用“BlockOnDataLoss”屬性時,實際發生的是 SSDT 向部署腳本添加了一個像這樣的檢查
IF EXISTS(SELECT 1 FROM TableToChange) BEGIN RAISEERROR ... END