Compartir a través de


sys.fn_cdc_get_column_ordinal (Transact-SQL)

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

Icono de vínculo a temasConvenciones 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 de tipo sysname.

  • 'column_name'
    Es la columna para la que se creará un informe. column_name es de tipo sysname.

Tipo devuelto

int

Comentarios

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 utiliza 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 datos del cambio.

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 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