sys.fn_cdc_increment_lsn (Transact-SQL)

Gilt für:SQL Server

Gibt die nächste Protokollfolgenummer (Log Sequence Number, LSN) in der auf der angegebenen LSN basierenden Reihenfolge zurück.

Transact-SQL-Syntaxkonventionen

Syntax

  
sys.fn_cdc_increment_lsn ( lsn_value )  

Argumente

lsn_value

LSN-Wert. lsn_value ist binary(10)

Rückgabetyp

binary(10)

Bemerkungen

Der von der Funktion zurückgegebene LSN-Wert ist immer größer als der angegebene Wert. Zwischen den beiden Werten befinden sich keine LSN-Werte.

Wenn Sie einen Änderungsdatenstrom systematisch im Verlauf der Zeit abfragen möchten, können Sie den Abfragefunktionsaufruf immer dann periodisch wiederholen, wenn ein neues Abfrageintervall zum Begrenzen der Änderungen in der Abfrage zurückgegeben wird. Um sicherzustellen, dass keine Daten verloren gehen, wird häufig die obere Grenze der vorherigen Abfrage verwendet, um die untere Grenze der nachfolgenden Abfrage zu generieren. Da es sich beim Abfrageintervall um ein geschlossenes Intervall handelt, muss die neue untere Grenze höher als die vorherige obere Grenze liegen, während sie zugleich niedrig genug liegen muss, um sicherzustellen, dass keine Änderungen mit LSN-Werten zwischen diesem Wert und der alten oberen Grenze vorhanden sind. Die Funktion sys.fn_cdc_increment_lsn wird verwendet, um diesen Wert abzurufen.

Berechtigungen

Erfordert die Mitgliedschaft in der öffentlichen Datenbankrolle.

Beispiele

Im folgenden Beispiel wird sys.fn_cdc_increment_lsn verwendet, um einen neuen unteren Grenzwert für eine Change Data Capture-Abfrage basierend auf der oberen Grenze zu generieren, die von einer vorherigen Abfrage gespeichert wurde und die in der @save_to_lsn-Variablen gespeichert ist.

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  

Hinweis

Fehler 313 wird erwartet, wenn der angegebene LSN-Bereich beim Aufrufen cdc.fn_cdc_get_all_changes_<capture_instance> von oder cdc.fn_cdc_get_net_changes_<capture_instance>nicht geeignet ist. Wenn der lsn_value Parameter über die Zeit des niedrigsten LSN oder höchsten LSN hinaus liegt, wird die Ausführung dieser Funktionen im Fehler 313 zurückgegeben: Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function. Der Entwickler sollte sich um diesen Fehler kümmern. Beispiel für eine Problemumgehung finden Sie unter ReplTalk auf GitHub.

Weitere Informationen