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許可權。 如果已為擷取實例指定異動數據擷取元件的資料庫角色,也需要該角色的成員資格。
範例
下列範例會取得擷取實例之更新遮罩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)