sys.fn_cdc_is_bit_set (Transact-SQL)

透過檢查擷取資料行的序數位置是否設定於提供的位元遮罩內,指出該擷取資料行是否已經更新。

主題連結圖示Transact-SQL 語法慣例

語法

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 的值做為要呼叫的引數,在 cdc.fn_cdc_get_all_changes_HR_Department 查詢函數所產生的結果集前面加上 'IsGroupNmUpdated' 資料行。

USE AdventureWorks;
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