sys.fn_cdc_get_column_ordinal(Transact-SQL)
적용 대상: SQL Server
지정된 캡처 인스턴스와 연결된 변경 테이블에 나타나는 지정된 열의 열 서수입니다.
구문
sys.fn_cdc_get_column_ordinal ( 'capture_instance','column_name')
인수
' capture_instance '
지정된 열이 캡처된 열로 식별된 캡처 인스턴스의 이름입니다. capture_instance sysname입니다.
' column_name '
보고할 열입니다. column_name sysname입니다.
반환 형식
int
설명
이 함수는 변경 데이터 캡처 업데이트 마스크 내에서 캡처된 열의 서수 위치를 식별하는 데 사용됩니다. 주로 함수 sys.fn_cdc_is_bit_set 함께 사용하여 변경 데이터를 쿼리할 때 업데이트 마스크에서 정보를 추출합니다.
사용 권한
원본 테이블의 캡처된 모든 열에 대해 SELECT 권한이 필요합니다. 캡처 인스턴스에 대해 변경 데이터 캡처 구성 요소의 데이터베이스 역할이 지정되어 있으면 해당 역할의 멤버 자격도 필요합니다.
예제
다음 예제에서는 캡처 인스턴스에 대한 HumanResources_Employee
업데이트 마스크에서 열의 VacationHours
서수 위치를 가져옵니다. 그런 다음 이 값은 반환된 업데이트 마스크에서 정보를 추출하는 호출 sys.fn_cdc_is_bit_set
에 사용됩니다.
USE AdventureWorks2022;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10), @VacationHoursOrdinal int;
SET @from_lsn = sys.fn_cdc_get_min_lsn('HumanResources_Employee');
SET @to_lsn = sys.fn_cdc_get_max_lsn();
SET @VacationHoursOrdinal = sys.fn_cdc_get_column_ordinal
( 'HumanResources_Employee','VacationHours');
SELECT *, sys.fn_cdc_is_bit_set(@VacationHoursOrdinal,
__$update_mask) as 'VacationHours'
FROM cdc.fn_cdc_get_net_changes_HumanResources_Employee
( @from_lsn, @to_lsn, 'all with mask');
GO
참고 항목
데이터 캡처 함수 변경(Transact-SQL)
변경 데이터 캡처 정보(SQL Server)
sys.sp_cdc_help_change_data_capture(Transact-SQL)
sys.sp_cdc_get_captured_columns(Transact-SQL)
sys.fn_cdc_is_bit_set(Transact-SQL)