當您將啟用 CDC 的資料庫附加至 Windows 上的 SQL Server 2016 或 SQL Server 2017 實例時發生錯誤

本文可協助您解決無法將啟用 CDC 的資料庫附加至 Windows 上 SQL Server 2016 或 SQL Server 2017 實例的問題。

原始產品版本:SQL Server 2008 和更新版本
原始 KB 編號: 3200464

徵狀

您可以卸離已在 SQL Server 2014 或更早版本上啟用Change Data Capture的資料庫,並將它附加至 windows 實例上的 SQL Server 2016 或 SQL Server 2017。 在這裡情況下,當您執行 sp_cdc_enable_table 系統程式時,會遇到下列錯誤:

命令

EXEC sys.sp_cdc_enable_table @source_schema='<schema name>',
@source_name='<source name>', @role_name='<role name>',  
@supports_net_changes=1, @allow_partition_switch=0;

錯誤訊息

Msg 22832, Level 16, State 1, Procedure
sp_cdc_enable_table_internal,第 639 行 [批次開始第 0 行]
無法更新表示資料表 [<架構名稱>] 的元數據。 [<物件名稱>] 已針對異動數據擷取啟用。 執行 'insert into [cdc] 命令時發生失敗。[captured_columns]'。 傳回的錯誤為 213:「資料行名稱或提供的值數目不符合資料表定義。」。 使用動作和錯誤來判斷失敗的原因,並重新提交要求。

解決方案

若要解決此問題,sp_cdc_vupgrade請在您於已啟用的 Windows 上附加 SQL Server 2016 或 SQL Server 2017 實例上的資料庫之後執行 Change Data Capture

如需詳細資訊,請 參閱附加資料庫