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