次の方法で共有


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;

エラー メッセージ

Msg 22832、レベル 16、状態 1、プロシージャ
sp_cdc_enable_table_internal、639 行目 [バッチ開始行 0]
テーブル [<スキーマ名>] を示すメタデータを更新できませんでした。 [<オブジェクト名>] は、[データ キャプチャの変更] に対して有効になっています。 コマンド 'insert into [cdc] の実行時にエラーが発生しました。[captured_columns]'。 返されたエラーは 213 でした。'列名または指定された値の数がテーブル定義と一致しません。'。 アクションとエラーを使用して、エラーの原因を特定し、要求を再送信します。

解決方法

この問題を解決するには、SQL Server 2016 または SQL Server 2017 on Windows のインスタンスにデータベースをChange Data Captureアタッチした後で実行sp_cdc_vupgradeします。

詳細については、「 データベースのアタッチ」を参照してください。