Share via


sys.sp_cdc_get_captured_columns (Transact-SQL)

指定したキャプチャ インスタンスによって追跡されるキャプチャ対象のソース列について、変更データ キャプチャのメタデータ情報を返します。変更データ キャプチャは、SQL Server 2008 Enterprise Edition、Developer Edition、および Evaluation Edition でのみ使用できます。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sys.sp_cdc_get_captured_columns 
    [ @capture_instance = ] 'capture_instance'

引数

  • [ @capture_instance = ] 'capture_instance'
    ソース テーブルに関連付けられたキャプチャ インスタンスの名前を指定します。capture_instance のデータ型は sysname で、NULL 値は許可されません。

    テーブルのキャプチャ インスタンスに関するレポートを作成するには、sys.sp_cdc_help_change_data_capture ストアド プロシージャを実行します。

リターン コードの値

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

結果セット

列名

データ型

説明

source_schema

sysname

ソース テーブルのスキーマ名です。

source_table

sysname

ソース テーブルの名前です。

capture_instance

sysname

キャプチャ インスタンスの名前です。

column_name

sysname

キャプチャ対象のソース列の名前です。

column_id

int

ソース テーブル内の列の ID です。

ordinal_position

int

ソース テーブル内での列の位置です。

data_type

sysname

列のデータ型です。

character_maximum_length

int

文字ベースの列の場合は最大文字長です。それ以外の場合は、NULL です。

numeric_precision

tinyint

数値ベースの場合は、列の有効桁数です。それ以外の場合は、NULL です。

numeric_precision_radix

smallint

数値ベースの場合は、列の有効桁数の基数です。それ以外の場合は、NULL です。

numeric_scale

int

数値ベースの場合は、列の小数点以下桁数です。それ以外の場合は、NULL です。

datetime_precision

smallint

datetime ベースの場合は、列の有効桁数です。それ以外の場合は NULL です。

説明

キャプチャ インスタンスのクエリ関数 (cdc.fn_cdc_get_all_changes_<capture_instance> または cdc.fn_cdc_get_net_changes_<capture_instance>) から返されたキャプチャ対象列の列情報を取得するには、sys.sp_cdc_get_captured_columns を使用します。列名、ID、および位置は、キャプチャ インスタンスの有効期間中は常に一定です。追跡対象テーブルの基になるソース列のデータ型が変更された場合にのみ、列のデータ型が変化します。ソース テーブルに対する列の追加または削除は、既存のキャプチャ インスタンスのキャプチャ対象列には影響しません。詳細については、「変更データ キャプチャの構成」を参照してください。

ソース テーブルに適用されたデータ定義言語 (DDL) ステートメントに関する情報を取得するには、sys.sp_cdc_get_ddl_history を使用します。DDL の変更によって追跡対象ソース列の構造が変更された場合、そのような DDL の変更がすべて結果セットとして返されます。

権限

db_owner 固定データベース ロールのメンバーシップが必要です。それ以外のすべてのユーザーについては、ソース テーブルのすべてのキャプチャ対象列に対する SELECT 権限が必要です。さらに、キャプチャ インスタンスのゲーティング ロールが定義されている場合は、そのデータベース ロールのメンバーシップが必要です。呼び出し元にソース データを表示する権限がない場合、エラー 22981 (オブジェクトが存在しないか、アクセスが拒否されました。) が返されます。

次の例は、HumanResources_Employee キャプチャ インスタンスに存在するキャプチャ対象列の情報を返します。

USE AdventureWorks2008R2;
GO
EXECUTE sys.sp_cdc_get_captured_columns 
    @capture_instance = N'HumanResources_Employee';
GO