sys.fn_cdc_increment_lsn (Transact-SQL)
Gibt die nächste Protokollfolgenummer (Log Sequence Number, LSN) in der auf der angegebenen LSN basierenden Reihenfolge zurück.
Syntax
sys.fn_cdc_increment_lsn ( lsn_value )
Argumente
- lsn_value
LSN-Wert. lsn_value ist vom Datentyp 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. Es wird die Funktion sys.fn_cdc_increment_lsn verwendet, um diesen Wert zu erhalten.
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 AdventureWorks;
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