KB4043624 - 修正:變更追蹤手動清理失敗,導致表格不存在錯誤SQL Server

套用到
SQL Server 2017 on Windows (all editions) SQL Server 2017 on Linux (all editions) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) 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 裡建立一個結構和一個資料表。
  • 你要啟用該表格的變更追蹤。
  • 你可以用 sp_flush_CT_internal_table_on_demand 指令手動清理。

在這種情況下,清理可能會失敗,錯誤顯示找不到該表格。

此錯誤發生是因為 sp_flush_CT_internal_table_on_demand 指令未考慮結構不同的資料表,例如非 dbo 擁有的資料表。

解決方式

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

累積更新1 for SQL Server 2017

Cumulative Update 6 for SQL Server 2016 SP1

Cumulative Update 8 for SQL Server 2014 SP2

關於 SQL Server 的累積更新:

每次新的 SQL Server 累積更新都包含了之前累積更新中包含的所有熱修補與安全修補。 請查看 SQL Server 的最新累積更新:

SQL Server 2017 最新累積更新

SQL Server 2016 最新累積更新

SQL Server 2014 最新累積更新

SQL Server 2016 服務包資訊

此更新已在以下 SQL Server 服務包中修正:

Service Pack 2 for SQL Server 2016

關於 SQL Server 服務包:

Service Pack 是累積性的。 每個新版 Service Pack 都包含前一版 Service Pack 中所有的修正程式,以及任何新增的修正程式。 我們的建議是套用該服務包的最新服務包及累積更新。 所以在安裝最新版的 Service Pack 之前,您不需要安裝前一版的 Service Pack。 請使用以下文章中的表1,查詢最新服務包及最新累積更新的更多資訊。

如何確定 SQL Server 及其元件的版本、版本與更新等級

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

了解 Microsoft 用來說明軟體更新的術語