sys.fn_cdc_is_bit_set (Transact-SQL)

Aplica-se a: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. 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. 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 que é retornada, fornecendo as informações específicas da coluna como parte do conjunto de resultados retornado.

É recomendável 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  

Consulte Também

Funções do Change Data Capture (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 o change data capture (SQL Server)