次の方法で共有


変更データ キャプチャの無効化

このトピックでは、データベースおよびテーブルに対して変更データ キャプチャを無効にする方法について説明します。

データベースでの変更データ キャプチャの無効化

sysadmin 固定サーバー ロールのメンバは、データベース コンテキストでストアド プロシージャ sys.sp_cdc_disable_db (Transact-SQL) を実行し、データベースの変更データ キャプチャを無効にすることができます。データベースを無効にする前に個々のテーブルを無効にする必要はありません。データベースを無効にすると、cdc ユーザー、スキーマ、および変更データ キャプチャ ジョブを含む関連するすべての変更データ キャプチャ メタデータが削除されます。ただし、変更データ キャプチャによって作成されたゲーティング ロールは自動的には削除されないので、明示的に削除する必要があります。この機能がデータベースで有効にされているかどうかを確認するには、sys.databases カタログ ビューの is_cdc_enabled 列をクエリします。

変更データ キャプチャが有効になっているデータベースを削除すると、変更データ キャプチャ ジョブも自動的に削除されます。

データベースの無効化の例については、データベースでの変更データ キャプチャの無効化のテンプレートを参照してください。

重要な注意事項重要

SQL Server Management Studio でこのテンプレートを見つけるには、[表示][テンプレート エクスプローラ][SQL Server テンプレート] の順にクリックします。Change Data Capture は、このトピックで参照されるすべてのテンプレートを含んだサブフォルダです。SQL Server Management Studio ツール バーには [テンプレート エクスプローラ] アイコンもあります。

-- =================================

-- データベースでの変更データ キャプチャの無効化のテンプレート

-- =================================

USE MyDB
GO

EXEC sys.sp_cdc_disable_db
GO

テーブルでの変更データ キャプチャの無効化

db_owner 固定データベース ロールのメンバは、ストアド プロシージャ sys.sp_cdc_disable_table を使用して個々のソース テーブルのキャプチャ インスタンスを削除できます。ソース テーブルで変更データ キャプチャが現在有効にされているかどうかを確認するには、sys.tables カタログ ビューの is_tracked_by_cdc 列を調べます。無効化の後、データベースに対して有効なテーブルがない場合は、変更データ キャプチャ ジョブも削除されます。

変更データ キャプチャが有効になっているテーブルを削除すると、そのテーブルに関連する変更データ キャプチャ メタデータも自動的に削除されます。

テーブルの無効化の例については、テーブルでのキャプチャ インスタンスの無効化のテンプレートを参照してください。

-- ===============================================

-- テーブルでのキャプチャ インスタンスの無効化のテンプレート

-- ===============================================

USE MyDB
GO

EXEC sys.sp_cdc_disable_table
@source_schema = N'dbo',
@source_name   = N'MyTable',
@capture_instance = N'dbo_MyTable'
GO