Share via


sys.fn_cdc_get_column_ordinal (Transact-SQL)

Se aplica a:SQL Server

Devuelve el ordinal de columna de la columna especificada tal como aparece en la tabla de cambios asociada a la instancia de captura especificada.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

'capture_instance'
Es el nombre de la instancia de captura en la que la columna especificada está identificada como columna capturada. capture_instance es sysname.

'column_name'
Es la columna en la que se va a informar. column_name es sysname.

Tipo de valor devuelto

int

Observaciones

Esta función se utiliza para identificar la posición ordinal de una columna capturada dentro de la máscara de actualización de la captura de datos modificados. Se usa principalmente junto con la función sys.fn_cdc_is_bit_set para extraer información de la máscara de actualización al consultar los datos modificados.

Permisos

Requiere el permiso SELECT en todas las columnas capturadas de la tabla de origen. Si se especifica un rol de base de datos en la captura de datos de cambio para la instancia de captura, también se requiere la pertenencia a ese rol.

Ejemplos

En el ejemplo siguiente se obtiene la posición ordinal de la columna VacationHours en la máscara de actualización de la instancia de captura HumanResources_Employee. Este valor se utiliza a continuación en la llamada a sys.fn_cdc_is_bit_set para extraer información de la máscara de actualización devuelta.

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  

Consulte también

Funciones de captura de datos modificados (Transact-SQL)
Acerca de la captura de datos modificados (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)