sys.fn_cdc_get_column_ordinal (Transact-SQL)

Gäller för:SQL Server

Returnerar kolumnordinalen för den angivna kolumnen som den visas i ändringstabellen kopplad till den angivna capture-instansen.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

'capture_instance'
Är namnet på den fångstinstans där den angivna kolumnen identifieras som en fångad kolumn. capture_instance är sysname.

'column_name'
Är kolumnen att rapportera om. column_name är sysname.

Returtyp

int

Remarks

Denna funktion används för att identifiera den ordinala positionen för en fångad kolumn inom uppdateringsmasken för förändringsdatainsamling. Den används huvudsakligen tillsammans med funktionen sys.fn_cdc_is_bit_set för att extrahera information från uppdateringsmasken när man söker efter ändringsdata.

Permissions

Kräver SELECT-behörighet på alla fångade kolumner i källtabellen. Om en databasroll för förändringsdatainsamlingskomponenten specificeras för fångstinstansen krävs medlemskap i den rollen också.

Examples

Följande exempel erhåller kolumnens ordinala position VacationHours i uppdateringsmasken för capture-instansen HumanResources_Employee . Det värdet används sedan i anropet till sys.fn_cdc_is_bit_set för att extrahera information från den returnerade uppdateringsmasken.

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