sys.fn_cdc_get_column_ordinal (Transact-SQL)

Retorna a ordinal de coluna da coluna especificada como ele aparece na tabela de mudança associada à instância de captura especificada.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • 'capture_instance'
    É o nome da instância de captura na qual a coluna especificada é identificada como uma coluna capturada. capture_instance é sysname.

  • 'column_name'
    É a coluna onde informar. column_name é sysname.

Tipo de retorno

int

Comentários

Esta função é usada para identificar a posição ordinal de uma coluna capturada dentro da máscara de atualização do Change Data Capture. É principalmente usada junto com a função sys.fn_cdc_is_bit_set, para extrair informações da máscara de atualização ao consultar sobre dados de alteração.

Permissões

Requer a permissão SELECT em todas as colunas capturadas da tabela de origem. Se uma função de banco de dados do componente do Change Data Capture estiver especificada para uma instância de captura, a associação naquela função também será requerida.

Exemplos

O exemplo a seguir obtém a posição ordinal da coluna VacationHours, na máscara de atualização para a instância de captura HumanResources_Employee. Esse valor é usado, então, na chamada para sys.fn_cdc_is_bit_set, para extrair informações da máscara de atualização retornada.

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