共用方式為


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 權限。如果已針對擷取執行個體指定了異動資料擷取元件的資料庫角色,也會需要該角色的成員資格。

範例

下列範例會取得 VacationHours 資料行在 HumanResources_Employee 擷取執行個體之更新遮罩中的序數位置。然後,該值會用於 sys.fn_cdc_is_bit_set 的呼叫中,以便從傳回的更新遮罩中擷取資訊。

USE AdventureWorks2008R2;
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