sys.fn_cdc_is_bit_set (Transact-SQL)

S’applique à :SQL Server

Indique si une colonne capturée a été mise à jour en vérifiant si sa position ordinale est définie dans un masque de bits fourni.

Conventions de la syntaxe Transact-SQL

Syntaxe

  
sys.fn_cdc_is_bit_set ( position , update_mask )  

Arguments

position
Position ordinale dans le masque à vérifier. position est int.

update_mask
Masque qui identifie les colonnes mises à jour. update_mask est varbinary(128).

Type de retour

bit

Remarques

Cette fonction est utilisée en général dans le cadre d'une requête de modification de données pour indiquer si une colonne a changé. Dans ce scénario, la fonction sys.fn_cdc_get_column_ordinal est utilisée avant la requête pour obtenir l’ordinal de colonne requis. sys.fn_cdc_is_bit_set est ensuite appliqué à chaque ligne de données de modification retournées, en fournissant les informations spécifiques à la colonne dans le cadre du jeu de résultats retourné.

Nous vous recommandons d’utiliser cette fonction au lieu de la fonction sys.fn_cdc_has_column_changed lorsque vous déterminez si les colonnes ont changé pour toutes les lignes d’un jeu de résultats retourné.

Autorisations

Nécessite l'appartenance au rôle public .

Exemples

L'exemple suivant utilise sys.fn_cdc_is_bit_set pour ajouter au jeu de résultats généré par la fonction de requête cdc.fn_cdc_get_all_changes_HR_Department la colonne 'IsGroupNmUpdated' en utilisant l'ordinal de colonne précalculé et la valeur de __$update_mask comme arguments à l'appel.

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  

Voir aussi

Fonctions de capture de données modifié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)
À propos de la capture de données modifiées (SQL Server)