分享方式:


sys.fn_cdc_get_column_ordinal (Transact-SQL)

適用於:SQL Server

傳回指定數據行序數,因為它出現在 與指定擷取實例相關聯的變更數據表 中。

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 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)