套用到SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

徵狀

假設您在 Microsoft SQL Server 2014、2016或2017中附加已啟用變更資料捕獲的資料庫。 如果要在資料庫啟動期間重做交易,變更資料捕獲可能會執行到不一致的狀態,也就是說,變更資料捕獲處於停用狀態,但變更資料捕獲物件仍存在。 此外,您可能會遇到下列情況:

  • 當您嘗試使用 sp_cdc_disable_db 的儲存程式來停用此資料庫的變更資料捕獲時,您會收到下列錯誤訊息:

    資料庫 DatabaseName不會啟用變更資料捕獲。 請確定已設定正確的資料庫內容,然後重試此操作。 若要報告已啟用變更資料捕獲的資料庫,請查詢 sys. 資料庫目錄視圖中的 [is_cdc_enabled] 資料行。

  • 當您嘗試使用 sp_cdc_enable_db 的儲存程式來啟用此資料庫的變更資料捕獲時,您會收到下列錯誤訊息:

    Msg 22906、Level 16、State 1、程式 sp_cdc_enable_db_internal、行 LineNumber 資料庫 DatabaseName 無法啟用變更資料捕獲,因為名為 UserName 的資料庫使用者或名為 SchemaName的架構已存在於目前的資料庫中。 變更資料捕獲只需要這些物件。 刪除或重新命名使用者或架構,然後重試此操作。

解決方案

此問題已在 SQL Server 的下列累積更新中修正:

       SQL Server 2016 SP1 的累積更新8  

       SQL Server 2017 的累積更新4

       SQL Server 2014 SP2 累積更新9

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

SQL Server 2016 的最新累計更新

SQL Server 2017 的最新累計更新

SQL Server 2014 的最新累計更新

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。

參考

瞭解 Microsoft 用於描述軟體更新的 詞彙

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。