Condividi tramite


sys.fn_cdc_is_bit_set (Transact-SQL)

Si applica a: SQL Server

Indica se una colonna acquisita è stata aggiornata controllando se la posizione ordinale è impostata all'interno di una maschera di bit specificata.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

  
sys.fn_cdc_is_bit_set ( position , update_mask )  

Argomenti

position
Posizione ordinale da controllare nella maschera. position è int.

update_mask
Maschera che identifica le colonne aggiornate. update_mask è varbinary(128).

Tipo restituito

bit

Osservazioni:

Questa funzione è utilizzata in genere come parte di una query che modifica dei dati per indicare se una colonna è stata modificata. In questo scenario, la funzione sys.fn_cdc_get_column_ordinal viene usata prima della query per ottenere l'ordinale di colonna richiesto. sys.fn_cdc_is_bit_set viene quindi applicato a ogni riga di dati delle modifiche restituiti, fornendo le informazioni specifiche della colonna come parte del set di risultati restituito.

È consigliabile usare questa funzione anziché la funzione sys.fn_cdc_has_column_changed quando si determina se le colonne sono state modificate per tutte le righe di un set di risultati restituito.

Autorizzazioni

È richiesta l'appartenenza al ruolo public .

Esempi

Nell'esempio seguente è utilizzato sys.fn_cdc_is_bit_set da anteporre al set di risultati generato dalla funzione per query cdc.fn_cdc_get_all_changes_HR_Department la colonna 'IsGroupNmUpdated' utilizzando il numero ordinale di colonna pre-calcolato e il valore di __$update_mask come argomenti alla chiamata.

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  

Vedi anche

Funzioni 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)
Informazioni su Change Data Capture (SQL Server)