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)