sys.fn_cdc_increment_lsn (Transact-SQL)
Se aplica a: SQL Server
Devuelve el número de secuencia de registro (LSN) siguiente de la secuencia basándose en el LSN especificado.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sys.fn_cdc_increment_lsn ( lsn_value )
Argumentos
lsn_value
Valor de LSN. lsn_value es binary(10).
Tipo devuelto
binary(10)
Comentarios
El valor LSN devuelto por la función siempre es mayor que el valor especificado y no existe ningún valor LSN entre los dos valores.
Para consultar sistemáticamente un flujo de datos de cambio durante un periodo de tiempo, puede repetir periódicamente la llamada de función de la consulta, especificando cada vez un nuevo intervalo de la consulta para limitar los cambios devueltos en la misma. Para ayudar a asegurarse de que no se pierden datos, el límite superior de la consulta anterior se utiliza a menudo para generar el límite inferior de la consulta subsiguiente. Dado que el intervalo de la consulta es cerrado, el nuevo límite inferior debe ser mayor que el límite superior anterior, pero lo suficientemente pequeño para asegurarse de que ningún cambio contiene valores LSN comprendidos entre este valor y el límite superior anterior. La función sys.fn_cdc_increment_lsn
se usa para obtener este valor.
Permisos
Requiere la pertenencia al rol de base de datos pública .
Ejemplos
En el ejemplo siguiente se utiliza sys.fn_cdc_increment_lsn
para generar un nuevo valor de límite inferior para una consulta de captura de datos modificados basado en el límite superior guardado de una consulta anterior y guardado en la variable @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
Nota:
Se espera el error 313 si el intervalo LSN proporcionado no es adecuado al llamar a cdc.fn_cdc_get_all_changes_<capture_instance>
o cdc.fn_cdc_get_net_changes_<capture_instance>
. Si el lsn_value
parámetro supera el tiempo de LSN más bajo o LSN más alto, la ejecución de estas funciones devolverá el error 313: Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function
. El desarrollador debe controlar este error.