次の方法で共有


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を実行します。

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