Sql-Server

重建表時,SSDT 發布總是會失敗並顯示“可能發生數據失去”嗎?

  • June 9, 2015

考慮以下場景:

  • 我們有一個 SSDT 數據庫項目。
  • 我們在表格的中間添加一個新列。
  • 這會強制數據庫項目重建表以部署更改。
  • 我們發布此 SSDT 數據庫項目時啟用了“如果可能發生數據失去,則阻止增量部署”設置。
  • 因為我們啟用了上述設置,並且(我認為)表正在重建,所以部署(正確)會拋出一個錯誤,指出可能會發生數據失去。

我的問題是:我們是否可以依賴這樣一個事實,即每當表需要作為 SSDT 發布的一部分進行重建時,都會拋出此錯誤?

是的,你可以依靠它。當您啟用“BlockOnDataLoss”屬性時,實際發生的是 SSDT 向部署腳本添加了一個像這樣的檢查

IF EXISTS(SELECT 1 FROM TableToChange)
BEGIN
    RAISEERROR ...
END

引用自:https://dba.stackexchange.com/questions/91133