sys.fn_cdc_get_max_lsn(Transact-SQL)
적용 대상: SQL Server
cdc.lsn_time_mapping 시스템 테이블의 start_lsn 열에서 최대 LSN(로그 시퀀스 번호)을 반환합니다. 이 함수를 사용하면 원하는 캡처 인스턴스에 대한 변경 데이터 캡처 시간대의 상위 엔드포인트를 반환할 수 있습니다.
구문
sys.fn_cdc_get_max_lsn ()
반환 형식
binary(10)
설명
이 함수는 cdc.lsn_time_mapping 테이블의 start_lsn 열에 있는 최대 LSN을 반환합니다. 따라서 변경 내용이 데이터베이스 변경 테이블에 전파될 때 캡처 프로세스에서 처리되는 마지막 LSN입니다. 데이터베이스에 대해 정의된 캡처 인스턴스와 연결된 모든 타임라인에 대한 하이 엔드포인트 역할을 합니다.
이 함수는 일반적으로 쿼리 간격에 적절한 하이 엔드포인트를 가져오는 데 사용됩니다.
사용 권한
public 데이터베이스 역할의 멤버여야 합니다.
예제
A. 최대 LSN 값 반환
다음 예제에서는 AdventureWorks2022 데이터베이스의 모든 캡처 인스턴스에 대한 최대 LSN을 반환합니다.
USE AdventureWorks2022;
GO
SELECT sys.fn_cdc_get_max_lsn()AS max_lsn;
B. 쿼리 범위의 상위 엔드포인트 설정
다음 예제에서는 반환된 sys.fn_cdc_get_max_lsn
최대 LSN을 사용하여 캡처 인스턴스 HumanResources_Employee
에 대한 쿼리 범위에 대한 상위 엔드포인트를 설정합니다.
USE AdventureWorks2022;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10);
SET @from_lsn = sys.fn_cdc_get_min_lsn(N'HumanResources_Employee');
SET @to_lsn = sys.fn_cdc_get_max_lsn();
SELECT * FROM cdc.fn_cdc_get_all_changes_HumanResources_Employee(@from_lsn, @to_lsn, 'all');
GO