Freigeben über


sys.fn_cdc_is_bit_set (Transact-SQL)

Gilt für: SQL Server

Gibt an, ob eine aufgezeichnete Spalte aktualisiert wurde, indem geprüft wird, ob ihre Ordnungsposition in einer bereitgestellten Bitmaske festgelegt ist.

Transact-SQL-Syntaxkonventionen

Syntax

  
sys.fn_cdc_is_bit_set ( position , update_mask )  

Argumente

position
Die Ordnungsposition in der zu überprüfenden Maske. position ist int

update_mask
Die Maske, die aktualisierte Spalten identifiziert. update_mask ist varbinary(128)

Rückgabetyp

bit

Hinweise

Diese Funktion wird in der Regel als Teil einer Änderungsdatenabfrage verwendet, um anzuzeigen, ob eine Spalte geändert wurde. In diesem Szenario wird die Funktion sys.fn_cdc_get_column_ordinal vor der Abfrage verwendet, um die erforderliche Spaltenordnungszahl abzurufen. sys.fn_cdc_is_bit_set wird dann auf jede Zeile von abgerufenen Änderungsdaten angewendet und stellt die spaltenspezifischen Informationen als Teil des zurückgegebenen Resultsets bereit.

Die Verwendung dieser Funktion statt der sys.fn_cdc_has_column_changed -Funktion wird empfohlen, wenn bestimmt wird, ob sich Spalten für alle Zeilen eines zurückgegebenen Resultsets geändert haben.

Berechtigungen

Erfordert die Mitgliedschaft in der public -Rolle.

Beispiele

Im folgenden Beispiel wird sys.fn_cdc_is_bit_set verwendet, um dem von der Abfragefunktion cdc.fn_cdc_get_all_changes_HR_Department generierten Resultset die Spalte 'IsGroupNmUpdated' voranzustellen, wobei die vorausberechnete Spaltenordnungszahl und der Wert von __$update_mask als Argumente für den Aufruf verwendet werden.

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  

Weitere Informationen

Ändern von Datenerfassungsfunktionen (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)
Über Change Data Capture (SQL Server)