sys.sp_cdc_help_change_data_capture (Transact-SQL)

適用対象:SQL Server

現在のデータベースで変更データ キャプチャが有効になっている各テーブルの変更データ キャプチャ構成を返します。 各ソース テーブルに対して最大 2 つの行を返すことができます。キャプチャ インスタンスごとに 1 行です。 変更データ キャプチャは、SQL Server のすべてのエディションで使用できるわけではありません。 SQL Server の各エディションでサポートされる機能の一覧については、「SQL Server 2022 の各エディションとサポートされている機能」を参照してください。

Transact-SQL 構文表記規則

構文

sys.sp_cdc_help_change_data_capture
    [ [ @source_schema = ] 'source_schema' ]
    [ , [ @source_name = ] 'source_name' ]
[ ; ]

引数

[ @source_schema = ] 'source_schema'

ソース テーブルが属するスキーマの名前。 @source_schemaは sysname で、既定値は NULL. @source_schemaを指定する場合は、@source_nameも指定する必要があります。

null 以外の場合、 @source_schema は現在のデータベースに存在する必要があります。

@source_schemaが null 以外の場合は、@source_nameも null 以外である必要があります。

[ @source_name = ] 'source_name'

ソース テーブルの名前です。 @source_nameは sysname で、既定値は NULL. @source_nameを指定する場合は、@source_schemaも指定する必要があります。

null 以外の場合、 @source_name は現在のデータベースに存在する必要があります。

@source_nameが null 以外の場合は、@source_schemaも null 以外である必要があります。

リターン コードの値

0 (成功) または 1 (失敗)。

結果セット

列名 データ型 説明
source_schema sysname ソース テーブルのスキーマ名です。
source_table sysname ソース テーブルの名前。
capture_instance sysname キャプチャ インスタンスの名前です。
object_id int ソース テーブルに関連付けられている変更テーブルの ID。
source_object_id int ソース テーブルの ID。
start_lsn binary(10) 変更テーブルをクエリする際の下端を表すログ シーケンス番号 (LSN) です。

NULL = 低エンドポイントが確立されていません。
end_lsn binary(10) 変更テーブルに対してクエリを実行するための高エンドポイントを表す LSN。 SQL Server 2012 (11.x) では、この列は常に NULL です。
supports_net_changes bit Net Change のサポートが有効になっています。
has_drop_pending bit SQL Server 2012 (11.x) では使用されません。
role_name sysname 変更データへのアクセスを制御するデータベース ロールの名前です。

NULL = ロールは使用されません。
index_name sysname ソース テーブル内の行を一意に識別するために使用されるインデックスの名前。
filegroup_name sysname 変更テーブルが存在するファイル グループの名前。

NULL = テーブルの変更は、データベースの既定のファイル グループにあります。
create_date datetime キャプチャ インスタンスが有効になった日付。
index_column_list nvarchar(max) ソース テーブル内の行を一意に識別するために使用されるインデックス列の一覧。
captured_column_list nvarchar(max) キャプチャ対象のソース列のリスト。

解説

@source_schema@source_nameの両方が既定で NULL に設定されている場合、または明示的に NULL が設定されている場合、このストアド プロシージャは、呼び出し元がSTANDARD EDITION LECT アクセス権を持つすべてのデータベース キャプチャ インスタンスに関する情報を返します。 @source_schema@source_nameが null 以外の場合は、特定の名前付き有効テーブルに関する情報のみが返されます。

アクセス許可

@source_schema@source_nameが NULL の場合、呼び出し元の承認によって、結果セットに含まれる有効なテーブルが決まります。 呼び出し元には、キャプチャ インスタンスのすべてのキャプチャ列に対するStandard Edition LECT アクセス許可と、テーブル情報を含める定義済みのゲーティング ロールのメンバーシップが必要です。

db_owner データベース ロールのメンバーは、定義されているすべてのキャプチャ インスタンスに関する情報を表示できます。 特定の有効なテーブルの情報が要求されると、名前付きテーブルに対して同じ Standard Edition LECT およびメンバーシップ条件が適用されます。

A. 指定したテーブルの変更データ キャプチャ構成情報を返します

次の例は、HumanResources.Employee テーブルを対象に変更データ キャプチャの構成を取得します。

USE AdventureWorks2022;
GO

EXECUTE sys.sp_cdc_help_change_data_capture
    @source_schema = N'HumanResources',
    @source_name = N'Employee';
GO

B. すべてのテーブルの変更データ キャプチャ構成情報を返す

次の例では、呼び出し元がアクセスを許可されている変更データを含む、データベース内のすべての有効なテーブルの構成情報を返します。

USE AdventureWorks2022;
GO

EXECUTE sys.sp_cdc_help_change_data_capture;
GO