分享方式:


sys.fn_cdc_is_bit_set (Transact-SQL)

適用於:SQL Server

會檢查擷取的數據行是否在提供的位掩碼內設定其序數位置,以指出是否已更新擷取的數據行。

Transact-SQL 語法慣例

語法

  
sys.fn_cdc_is_bit_set ( position , update_mask )  

引數

position
這是遮罩中要檢查的序數位置。 positionint

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)