現象
Microsoft SQL Server 2014、2016、または2017でデータキャプチャの変更が有効になっているデータベースをアタッチすることを前提としています。 データベースの起動中にやり直されるトランザクションがある場合は、変更データキャプチャが不整合な状態になることがあります。これは、変更データキャプチャオブジェクトはまだ存在しています。 さらに、次のような状況が発生する可能性があります。
-
Sp_cdc_disable_dbストアドプロシージャを使用して、このデータベースの change data capture を無効にしようとすると、次のエラーメッセージが表示されます。
データベースの DatabaseNameは、Change Data Capture に対して有効になっていません。 正しいデータベースコンテキストが設定されていることを確認し、操作を再試行します。 データキャプチャの変更を有効にしたデータベースについてレポートするには、sys の [カタログ] ビューで is_cdc_enabled 列にクエリを行います。
-
Sp_cdc_enable_dbストアドプロシージャを使用して、このデータベースのデータキャプチャの変更を有効にしようとすると、次のエラーメッセージが表示されます。
Msg 22906、Level 16、State 1、Procedure sp_cdc_enable_db_internal、Line LineNumberユーザー名またはSchemaNameという名前のスキーマが既に現在のデータベースに存在しているため、データベースのDatabaseNameを変更することはできません。 これらのオブジェクトは、データキャプチャを変更することによってのみ必要です。 ユーザーまたはスキーマの名前を変更するか、名前を変更して、操作をもう一度実行します。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで修正されています。
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
SQL Server 2016 の最新の累積的な更新プログラム
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
ソフトウェアの更新を説明するために Microsoft が使用する 用語について説明します。