Condividi tramite


sys.fn_cdc_get_column_ordinal (Transact-SQL)

Si applica a: SQL Server

Restituisce l'ordinale di colonna della colonna specificata così come viene visualizzata nella tabella delle modifiche associata all'istanza di acquisizione specificata.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

' capture_instance '
Nome dell'istanza di acquisizione in cui la colonna specificata viene identificata come una colonna acquisita. capture_instance è sysname.

' column_name '
Colonna su cui creare report. column_name è sysname.

Tipo restituito

int

Osservazioni:

Questa funzione viene utilizzata per identificare la posizione ordinale di una colonna acquisita all'interno della maschera di aggiornamento dell'acquisizione dei dati delle modifiche. Viene usata principalmente insieme alla funzione sys.fn_cdc_is_bit_set per estrarre informazioni dalla maschera di aggiornamento durante l'esecuzione di query sui dati delle modifiche.

Autorizzazioni

È richiesta l'autorizzazione SELECT in tutte le colonne acquisite della tabella di origine. Se per l'istanza di acquisizione viene specificato un ruolo del database per il componente di acquisizione dei dati delle modifiche, viene anche richiesta l'appartenenza a tale ruolo.

Esempi

Nell'esempio seguente si ottiene la posizione ordinale della colonna VacationHours nella maschera di aggiornamento per l'istanza di acquisizione HumanResources_Employee. Questo valore viene poi utilizzato nella chiamata a sys.fn_cdc_is_bit_set per estrarre informazioni dalla maschera di aggiornamento restituita.

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  

Vedi anche

Funzioni Change Data Capture (Transact-SQL)
Informazioni su Change Data Capture (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)