다음을 통해 공유


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을 사용하여 cdc.fn_cdc_get_all_changes_HR_Department 쿼리 함수에 의해 생성된 결과 집합 앞에 사전 계산된 열 서수와 __$update_mask 값을 호출 인수로 사용하는 'IsGroupNmUpdated' 열을 추가합니다.

USE AdventureWorks2012;
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)