sys.sp_cdc_help_change_data_capture (Transact-SQL)
適用対象: SQL Server
現在のデータベースで変更データ キャプチャが有効になっている各テーブルの変更データ キャプチャ構成を返します。 各ソース テーブルに対して最大 2 つの行を返すことができます。キャプチャ インスタンスごとに 1 行です。 変更データ キャプチャは、SQL Server のすべてのエディションで使用できるわけではありません。 SQL Server の各エディションでサポートされる機能の一覧については、「SQL Server 2022 の各エディションとサポートされている機能」を参照してください。
構文
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
を設定している場合、このストアド プロシージャは、呼び出し元が SELECT アクセス権を持つすべてのデータベース キャプチャ インスタンスの情報を返します。 @source_schemaと@source_nameが null 以外の場合は、特定の名前付き有効テーブルに関する情報のみが返されます。
アクセス許可
@source_schemaと@source_nameがNULL
されると、呼び出し元の承認によって、結果セットに含まれる有効なテーブルが決まります。 呼び出し元には、キャプチャ インスタンスのすべてのキャプチャ列に対する SELECT 権限と、テーブル情報を含める定義済みのゲーティング ロールのメンバーシップが必要です。
db_owner データベース ロールのメンバーは、定義されているすべてのキャプチャ インスタンスに関する情報を表示できます。 特定の有効なテーブルの情報が要求されると、名前付きテーブルに対して同じ SELECT 条件とメンバーシップ条件が適用されます。
例
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