sys.fn_cdc_is_bit_set (Transact-SQL)

Indica se uma coluna capturada foi atualizada verificando se sua posição ordinal está definida em um bitmask fornecido.

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

Sintaxe

sys.fn_cdc_is_bit_set ( position , update_mask )

Argumentos

  • position
    É a posição ordinal na máscara a ser verificada. position é int.

  • update_mask
    É a máscara que identifica colunas atualizadas. update_mask é varbinary(128).

Tipo de retorno

bit

Comentários

Esta função é geralmente usada como parte de uma consulta de dados de alteração, a fim de indicar se a coluna foi alterada. Neste cenário, a função sys.fn_cdc_get_column_ordinal é usada antes de a consulta obter o ordinal da coluna necessária. sys.fn_cdc_is_bit_set é então aplicado a cada linha de dados de alteração retornada, fornecendo as informações específicas da coluna, como parte do conjunto de resultados retornado.

Recomendamos o uso dessa função em vez da função sys.fn_cdc_has_column_changed ao determinar se as colunas foram alteradas para todas as linhas de um conjunto de resultados retornado.

Permissões

Requer associação na função pública.

Exemplos

O exemplo a seguir usa sys.fn_cdc_is_bit_set para preceder ao conjunto de resultados gerado pela função de consulta cdc.fn_cdc_get_all_changes_HR_Department a coluna 'IsGroupNmUpdated' usando o ordinal da coluna pré-computada e o valor de __$update_mask como argumentos para a chamada.

USE AdventureWorks2008R2;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10), @GroupNm_ordinal int;
SET @from_lsn = sys.fn_cdc_get_min_lsn('HR_Department');
SET @to_lsn = sys.fn_cdc_get_max_lsn();
SET @GroupNm_ordinal = sys.fn_cdc_get_column_ordinal('HR_Department','GroupName');
SELECT sys.fn_cdc_is_bit_set(@GroupNm_ordinal,__$update_mask) as 'IsGroupNmUpdated', *
FROM cdc.fn_cdc_get_all_changes_HR_Department( @from_lsn, @to_lsn, 'all')
WHERE __$operation = 4;
GO