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