sys.fn_cdc_increment_lsn(Transact-SQL)

적용 대상:SQL Server

지정된 LSN(로그 시퀀스 번호)을 기준으로 시퀀스의 다음 LSN을 반환합니다.

Transact-SQL 구문 표기 규칙

구문

  
sys.fn_cdc_increment_lsn ( lsn_value )  

인수

lsn_value

LSN 값입니다. lsn_value binary(10)입니다.

반환 형식

binary(10)

설명

함수에서 반환하는 LSN 값은 항상 지정된 값보다 크며 두 값 사이에는 LSN 값이 없습니다.

시간에 따른 변경 데이터 스트림을 체계적으로 쿼리하려면 쿼리에서 반환된 변경 내용을 바인딩하기 위해 새 쿼리 간격을 지정할 때마다 정기적으로 쿼리 함수 호출을 반복할 수 있습니다. 데이터가 손실되지 않도록 하기 위해 이전 쿼리의 상한은 종종 후속 쿼리에 대한 하한을 생성하는 데 사용됩니다. 쿼리 간격은 닫힌 간격이므로 새 하한은 이전 상한보다 커야 하지만 변경 내용에 이 값과 이전 상한 사이에 있는 LSN 값이 없도록 충분히 작아야 합니다. sys.fn_cdc_increment_lsn 함수는 이 값을 가져오는 데 사용됩니다.

사용 권한

공용 데이터베이스 역할의 멤버 자격이 필요합니다.

다음 예제에서는 이전 쿼리에서 저장하고 변수@save_to_lsn에 저장한 상한을 기반으로 변경 데이터 캡처 쿼리에 대한 새로운 하한 값을 생성하는 데 사용합니다sys.fn_cdc_increment_lsn.

USE AdventureWorks2022;  
GO  
DECLARE @from_lsn binary(10), @to_lsn binary(10), @save_to_lsn binary(10);  
SET @save_to_lsn = <previous_upper_bound_value>;  
SET @from_lsn = sys.fn_cdc_increment_lsn(@save_to_lsn);  
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  

참고 항목

제공된 LSN 범위가 호출 cdc.fn_cdc_get_all_changes_<capture_instance> 하거나 cdc.fn_cdc_get_net_changes_<capture_instance>호출할 때 적절하지 않은 경우 오류 313이 필요합니다. 매개 변수가 lsn_value 가장 낮은 LSN 또는 가장 높은 LSN의 시간을 초과하면 이러한 함수를 실행하면 오류 313 Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function이 반환됩니다. 이 오류는 개발자가 처리해야 합니다. 해결 방법을 위한 샘플 T-SQL은 GitHub의 ReplTalk에서 찾을 수 있습니다.

참고 항목