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)
Hinweise
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 public -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 oder cdc.fn_cdc_get_net_changes_<capture_instance>
Aufrufen cdc.fn_cdc_get_all_changes_<capture_instance>
nicht geeignet ist. Wenn der lsn_value
Parameter über den Zeitpunkt des niedrigsten LSN oder des höchsten LSN hinausgeht, wird die Ausführung dieser Funktionen in 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.