Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Returnerar nästa log-sekvensnummer (LSN) i sekvensen baserat på det specificerade LSN.
Transact-SQL syntaxkonventioner
Syntax
sys.fn_cdc_increment_lsn ( lsn_value )
Arguments
lsn_value
LSN-värde. lsn_value är binär(10).
Returtyp
binary(10)
Remarks
LSN-värdet som returneras av funktionen är alltid större än det angivna värdet, och inga LSN-värden finns mellan de två värdena.
För att systematiskt fråga en ström av förändringsdata över tid kan du upprepa frågefunktionsanropet periodiskt, varje gång med en ny frågeintervall som begränsar de ändringar som returneras i frågan. För att säkerställa att ingen data går förlorad används ofta den övre gränsen för föregående fråga för att generera den nedre gränsen för den efterföljande frågan. Eftersom frågeintervallet är ett slutet intervall måste den nya nedre gränsen vara större än den tidigare övre gränsen, men tillräckligt liten för att säkerställa att inga ändringar har LSN-värden som ligger mellan detta värde och den gamla övre gränsen. Funktionen sys.fn_cdc_increment_lsn används för att erhålla detta värde.
Permissions
Kräver medlemskap i den offentliga databasrollen.
Examples
Följande exempel använder sys.fn_cdc_increment_lsn för att generera ett nytt nedre gränsvärde för en förändringsdatainsamlingsfråga baserat på den övre gränsen som sparats från en tidigare fråga och sparats i variabeln @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
Fel 313 förväntas om det LSN-intervallet som tillhandahålls inte är lämpligt vid anrop cdc.fn_cdc_get_all_changes_<capture_instance> eller cdc.fn_cdc_get_net_changes_<capture_instance>. Om parametern lsn_value är längre än tiden för lägsta eller högsta LSN, kommer exekveringen av dessa funktioner att returnera fel 313: Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function. Det här felet bör hanteras av utvecklaren.