sys.sp_cdc_get_captured_columns (Transact-SQL)

適用対象:SQL Server

指定したキャプチャ インスタンスによって追跡されるキャプチャ対象のソース列について、変更データ キャプチャのメタデータ情報を返します。 変更データ キャプチャは、SQL Server のすべてのエディションで使用できるわけではありません。 SQL Server の各エディションでサポートされる機能の一覧については、「SQL Server 2022 の各エディションとサポートされている機能」を参照してください。

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。
column_ordinal 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、位置の再メイン定数。 追跡対象テーブルの基になるソース列のデータ型が変更された場合にのみ、列のデータ型が変化します。 ソース テーブルに対して追加または削除された列は、既存のキャプチャ インスタンスのキャプチャされた列には影響しません。

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

アクセス許可

db_owner 固定データベース ロール内でメンバーシップが必要です。 他のすべてのユーザーには、ソース テーブル内のすべてのキャプチャ列に対するStandard Edition LECT アクセス許可と、キャプチャ インスタンスのゲーティング ロールが定義されている場合は、そのデータベース ロールのメンバーシップが必要です。 呼び出し元にソース データを表示するアクセス許可がない場合、関数はエラー 22981 (Object doesn't exist or access is denied.) を返します。

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

USE AdventureWorks2022;
GO

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