WINDOWS 上の SQL Server 2016 または SQL Server 2017 のインスタンスに CDC 対応データベースをアタッチするとエラーが発生する
この記事は、WINDOWS 上の SQL Server 2016 または SQL Server 2017 のインスタンスに CDC 対応データベースをアタッチできない問題を解決するのに役立ちます。
元の製品バージョン: SQL Server 2008 以降のバージョン
元の KB 番号: 3200464
現象
SQL Server 2014 以前のバージョンで Change Data Capture
が有効になっているデータベースをデタッチし、Windows インスタンス上の SQL Server 2016 または SQL Server 2017 にアタッチします。 この状況では、 sp_cdc_enable_table
システム プロシージャを実行すると、次のエラーが発生します。
command
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;
エラー メッセージ
メッセージ 22832、レベル 16、状態 1、プロシージャ
sp_cdc_enable_table_internal行 639 [バッチ開始行 0]
テーブル [<schema name>] を示すメタデータを更新できませんでした。 [<object name>] が Change Data Capture に対して有効になっています。 コマンド 'insert into [cdc] の実行時にエラーが発生しました。[captured_columns]'。 返されたエラーは 213 でした:'列名または指定された値の数がテーブル定義と一致しません。'。 アクションおよびエラーを使用してエラーの原因を特定し、要求を再実行してください。
解決方法
この問題を解決するには、sql Server 2016 または WINDOWS 上の SQL Server 2017 のインスタンスでデータベースをアタッチした後、Change Data Capture
を有効にした後、sp_cdc_vupgrade
を実行します。
詳細については、「 データベースのアタッチ」を参照してください。