次の方法で共有


sys.fn_cdc_get_column_ordinal (Transact-SQL)

特定のキャプチャ インスタンスに関連付けられた変更テーブルにおける、指定された列の序数を返します。

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

構文

sys.fn_cdc_get_column_ordinal ( 'capture_instance','column_name')

引数

  • ' capture_instance '
    キャプチャ対象の列が指定されたキャプチャ インスタンスの名前を指定します。 capture_instance のデータ型は sysname です。

  • ' column_name '
    レポート対象の列を指定します。 column_name のデータ型は sysname です。

戻り値の型

int

説明

この関数は、変更データ キャプチャの更新マスク内で、キャプチャ対象列の序数位置を特定するために使用します。 主に、変更データのクエリ時に更新マスクから情報を抽出する際、sys.fn_cdc_is_bit_set 関数と組み合わせて使用されます。

権限

ソース テーブルのすべてのキャプチャ対象列に対する SELECT 権限が必要です。 キャプチャ インスタンスに対して変更データ キャプチャ コンポーネントのデータベース ロールが指定されている場合、そのロールのメンバーシップも必要となります。

使用例

次の例では、HumanResources_Employee キャプチャ インスタンスの更新マスク内の、VacationHours 列の序数位置を取得します。 さらに、この値を sys.fn_cdc_is_bit_set 関数の中で使用し、返された更新マスクから情報を抽出します。

USE AdventureWorks2012;
GO
DECLARE @VacationHoursOrdinal int;
SET @VacationHoursOrdinal = 
sys.fn_cdc_get_column_ordinal ( 'HumanResources_Employee','VacationHours');
SELECT sys.fn_cdc_is_bit_set(@VacationHoursOrdinal, __$update_mask)
  as 'VacationHoursChanged', *
FROM cdc.fn_get_net_changes_HumanResources_Employee
    (@from_lsn, @to_lsn, 'all with mask');
GO

関連項目

参照

変更データ キャプチャの関数 (Transact-SQL)

sys.sp_cdc_help_change_data_capture (Transact-SQL)

sys.sp_cdc_get_captured_columns (Transact-SQL)

sys.fn_cdc_is_bit_set (Transact-SQL)

概念

変更データ キャプチャについて (SQL Server)