sys.fn_cdc_increment_lsn (Transact-SQL)

platí pro:SQL Server

Vrací další logaritmické sekvenční číslo (LSN) v sekvenci na základě zadaného LSN.

Transact-SQL konvence syntaxe

Syntax

  
sys.fn_cdc_increment_lsn ( lsn_value )  

Arguments

lsn_value

Hodnota LSN. lsn_value je binární(10).

Návratový typ

binary(10)

Remarks

Hodnota LSN vrácená funkcí je vždy větší než zadaná hodnota a mezi těmito dvěma hodnotami neexistují žádné hodnoty LSN.

Pro systematické dotazování toku změn v průběhu času můžete opakovat volání dotazovací funkce periodicky, přičemž pokaždé specifikujete nový dotazovací interval, který omezí změny vrácené v dotazu. Aby se zajistilo, že data nebudou ztracena, se často používá horní hranice pro předchozí dotaz k vygenerování dolní hranice pro následující dotaz. Protože dotazovací interval je uzavřený interval, musí být nová dolní mez větší než předchozí horní meze, ale dostatečně malá, aby zajistila, že žádné změny nemají LSN hodnoty ležící mezi touto hodnotou a starou horní hranicí. Funkce sys.fn_cdc_increment_lsn se používá k získání této hodnoty.

Permissions

Vyžaduje členství v roli databáze veřejné.

Examples

Následující příklad používá sys.fn_cdc_increment_lsn k generování nové dolní mezní hodnoty pro dotaz na zachycení změn dat na základě horní meze, která byla uložena z předchozího dotazu a uložena v proměnné @save_to_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  

Note

Chyba 313 se očekává, pokud dodaný rozsah LSN není vhodný při volání cdc.fn_cdc_get_all_changes_<capture_instance> nebo cdc.fn_cdc_get_net_changes_<capture_instance>. Pokud je lsn_value parametr za časem nejnižšího nebo nejvyššího LSN, vykonání těchto funkcí vrátí chybu 313: Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function. Tuto chybu by měl zpracovat vývojář.