sys.sp_cdc_help_change_data_capture (Transact-SQL)
現在のデータベース内で変更データ キャプチャが有効にされている各テーブルを対象に、変更データ キャプチャの構成を返します。 取得できる行は、1 つのソース テーブルにつき最大 2 行 (キャプチャ インスタンスごとに 1 行) です。 変更データ キャプチャは、Microsoft SQL Server のすべてのエディッションで使用できるわけではありません。 SQL Server の各エディションでサポートされる機能の一覧については、「SQL Server 2014 の各エディションがサポートする機能」を参照してください。
適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで) |
構文
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 では、この列は常に NULL です。 |
supports_net_changes |
bit |
差分変更のサポートが有効になっています。 |
has_drop_pending |
bit |
SQL Server 2012 では使用されません。 |
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 AdventureWorks2012;
GO
EXECUTE sys.sp_cdc_help_change_data_capture
@source_schema = N'HumanResources',
@source_name = N'Employee';
GO
B. すべてのテーブルについて変更データ キャプチャの構成情報を取得する
次の例は、呼び出し元がアクセスを許可されている変更データを含むデータベース内のすべての有効なテーブルを対象に構成情報を取得します。
USE AdventureWorks2012;
GO
EXECUTE sys.sp_cdc_help_change_data_capture;
GO