sys.fn_cdc_increment_lsn (Transact-SQL)

Retourne le numéro séquentiel dans le journal suivant dans la séquence basée sur le numéro séquentiel dans le journal spécifié.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

sys.fn_cdc_increment_lsn ( lsn_value )

Arguments

  • lsn_value
    Valeur LSN. lsn_value est de type binary(10).

Type de retour

binary(10)

Notes

La valeur LSN retournée par la fonction est toujours supérieure à la valeur spécifiée, et aucune valeur LSN n'existe entre les deux valeurs.

Pour interroger systématiquement un flux de données de modification dans le temps, vous pouvez répéter périodiquement l'appel de fonction de requête, en spécifiant chaque fois un nouvel intervalle de requête pour délimiter les modifications retournées dans la requête. Pour aider à s'assurer de ne perdre aucune donnée, la limite supérieure de la requête précédente est souvent utilisée pour générer la limite inférieure de la requête suivante. Étant donné que l'intervalle de requête est un intervalle fermé, la nouvelle limite inférieure doit être plus grande que la limite supérieure précédente, mais assez petite pour garantir qu'aucune modification ne comporte de valeur LSN qui se trouve entre cette valeur et l'ancienne limite supérieure. La fonction sys.fn_cdc_increment_lsn est utilisée pour obtenir cette valeur.

Autorisations

Nécessite l'appartenance au rôle de base de données public.

Exemples

L'exemple suivant utilise sys.fn_cdc_increment_lsn pour générer une nouvelle valeur de limite inférieure pour une requête de capture des données modifiées basée sur la limite supérieure enregistrée dans la variable @save\_to\_lsn à partir d'une requête précédente.

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