sys.fn_cdc_is_bit_set (Transact-SQL)
適用於:SQL Server
會檢查擷取的數據行是否在提供的位掩碼內設定其序數位置,以指出是否已更新擷取的數據行。
語法
sys.fn_cdc_is_bit_set ( position , update_mask )
引數
position
這是遮罩中要檢查的序數位置。 position 為 int。
update_mask
這是識別更新數據行的遮罩。 update_mask是 varbinary(128) 。
傳回類型
bit
備註
此函式通常用於變更數據查詢的一部分,以指出數據行是否已變更。 在此案例中 ,查詢之前會使用 函式sys.fn_cdc_get_column_ordinal ,以取得必要的數據行序數。 sys.fn_cdc_is_bit_set接著會套用至傳回的每個變更數據列,提供數據行特定資訊做為傳回結果集的一部分。
當判斷傳回結果集所有數據列的數據行是否已變更時,建議使用這個函式,而不是 函式sys.fn_cdc_has_column_changed 。
權限
需要 public 角色的成員資格。
範例
下列範例會使用 sys.fn_cdc_is_bit_set
先行計算的數據行序數和__$update_mask
呼叫的 as 自變數作為自變數的值,將 查詢函cdc.fn_cdc_get_all_changes_HR_Department
式產生的結果集前面加上數據行 'IsGroupNmUpdated
'。
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
另請參閱
異動資料擷取函數 (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)
關於異動資料擷取 (SQL Server)