sys.fn_cdc_is_bit_set(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
참고 항목
참조
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)