sys.fn_cdc_get_column_ordinal (Transact-SQL)
適用対象:SQL Server
指定したキャプチャ インスタンスに関連付けられている 変更テーブル に表示される、指定した列の列序数を返します。
構文
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 権限が必要です。 変更データ キャプチャ コンポーネントのデータベース ロールがキャプチャ インスタンスに指定されている場合は、そのロールのメンバーシップも必要です。
例
次の例では、VacationHours
キャプチャ インスタンスの更新マスク内の、HumanResources_Employee
列の序数位置を取得します。 さらに、この値を sys.fn_cdc_is_bit_set
関数の中で使用し、返された更新マスクから情報を抽出します。
USE AdventureWorks2022;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10), @VacationHoursOrdinal int;
SET @from_lsn = sys.fn_cdc_get_min_lsn('HumanResources_Employee');
SET @to_lsn = sys.fn_cdc_get_max_lsn();
SET @VacationHoursOrdinal = sys.fn_cdc_get_column_ordinal
( 'HumanResources_Employee','VacationHours');
SELECT *, sys.fn_cdc_is_bit_set(@VacationHoursOrdinal,
__$update_mask) as 'VacationHours'
FROM cdc.fn_cdc_get_net_changes_HumanResources_Employee
( @from_lsn, @to_lsn, 'all with mask');
GO
参照
変更データ キャプチャ関数 (Transact-SQL)
変更データ キャプチャについて (SQL Server)
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)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示