Compartilhar via


sys.fn_cdc_is_bit_set (Transact-SQL)

Aplica-se: SQL Server

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

Convenções de sintaxe de Transact-SQL

Sintaxe

  
sys.fn_cdc_is_bit_set ( position , update_mask )  

Argumentos

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

update_mask
É a máscara que identifica colunas atualizadas. update_mask é varbinário(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. Nesse cenário, a função sys.fn_cdc_get_column_ordinal é usada antes da consulta para obter o ordinal de coluna necessário. sys.fn_cdc_is_bit_set é então aplicado a cada linha de dados de alteração retornados, fornecendo as informações específicas da coluna como parte do conjunto de resultados retornado.

Recomendamos usar essa 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 à 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 AdventureWorks2022;  
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  

Confira também

Funções de captura de dados de alterações (Transact-SQL)
sys.fn_cdc_get_column_ordinal (Transact-SQL)
sys.fn_cdc_has_column_changed (Transact-SQL)
cdc.fn_cdc_get_all_changes_<capture_instance> (Transact-SQL)
cdc.fn_cdc_get_net_changes_<capture_instance> (Transact-SQL)
Sobre a captura de dados de alterações (SQL Server)