sys.fn_cdc_get_column_ordinal (Transact-SQL)
Restituisce il numero ordinale di colonna della colonna specificata nel modo in cui appare nella tabella delle modifiche associata all'istanza di acquisizione specificata.
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 per la quale eseguire un 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. Si utilizza principalmente insieme alla funzione sys.fn_cdc_is_bit_set per estrarre informazioni dalla maschera di aggiornamento quando si esegue una query per i 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 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