sys.fn_cdc_increment_lsn (Transact-SQL)

Restituisce il successivo numero di sequenza del file di log (LSN) nella sequenza basata sul numero LSN specificato.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sys.fn_cdc_increment_lsn ( lsn_value )

Argomenti

  • lsn_value
    Valore LSN. lsn_value è binary(10).

Tipo restituito

binary(10)

Osservazioni

Il valore LSN restituito dalla funzione è sempre maggiore del valore specificato e non esiste alcun valore LSN tra i due valori.

Per eseguire sistematicamente query su un flusso di dati delle modifiche, è possibile ripetere periodicamente la chiamata della funzione di query, specificando ogni volta un nuovo intervallo di query per delimitare le modifiche restituite nella query. Per assicurarsi che non si verifichino perdite di dati, il limite superiore della query precedente viene spesso utilizzato per generare il limite inferiore della query successiva. Poiché l'intervallo di query è un intervallo chiuso, il nuovo limite inferiore deve essere più grande del limite superiore precedente, ma piccolo abbastanza da garantire che nessuna modifica abbia valori LSN compresi tra questo valore e il limite superiore precedente. La funzione sys.fn_cdc_increment_lsn viene utilizzata per ottenere questo valore.

Autorizzazioni

È richiesta l'appartenenza al ruolo del database public.

Esempi

Nell'esempio seguente viene utilizzato sys.fn_cdc_increment_lsn al fine di generare un nuovo valore di limite inferiore per una query di acquisizione di dati delle modifiche basata sul limite superiore salvato da una precedente query e salvato nella variabile @save\_to\_lsn.

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