Partager via


sp_setsubscriptionxactseqno (Transact-SQL)

Utilisé lors de la résolution des incidents pour définir le numéro séquentiel dans le journal de la transaction suivante que doit appliquer l'Agent de distribution au niveau de l'Abonné, ce qui permet à l'Agent d'ignorer une transaction qui a échoué. Cette procédure stockée est exécutée sur la base de données d'abonnement de l'Abonné. Non pris en charge pour les Abonnés non-SQL Server.

AttentionAttention

Si vous n'utilisez pas correctement cette procédure stockée ou si vous spécifiez une valeur LSN incorrecte, l'Agent de distribution annule les modifications appliquées au niveau de l'Abonné ou ignore toutes les modifications restantes.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

sp_setsubscriptionxactseqno [ @publisher = ] 'publisher'
        , [ @publisher_db = ] 'publisher_db'
        , [ @publication = ] 'publication'
        , [ @xact_seqno = ] xact_seqno 

Arguments

  • [ @publisher= ] 'publisher'
    Nom du serveur de publication. publisher est de type sysname, sans valeur par défaut.

  • [ @publisher_db= ] 'publisher_db'
    Nom de la base de données de publication. publisher_db est de type sysname, sans valeur par défaut. Pour un serveur de publication non-SQL, publisher_db correspond au nom de la base de données de distribution.

  • [ @publication= ] 'publication'
    Nom de la publication. publication est de type sysname, sans valeur par défaut. Lorsque l'Agent de distribution est partagé par plusieurs publications, vous devez spécifier la valeur ALL pour publication.

  • [ @xact_seqno= ] xact_seqno
    xact_seqno de la transaction à l'origine d'une erreur au niveau de l'Abonné. xact_seqno est de type varbinary(16), sans valeur par défaut.

Ensemble de résultats

Nom de la colonne

Type de données

Description

ORIGINAL XACT_SEQNO

varbinary(16)

Numéro séquentiel d'enregistrement d'origine de la transaction suivante à appliquer à l'Abonné.

UPDATED XACT_SEQNO

varbinary(16)

Numéro séquentiel d'enregistrement mis à jour de la transaction suivante à appliquer à l'Abonné.

SUBSCRIPTION STREAM COUNT

int

Nombre de flux d'abonnements utilisés au cours de la dernière synchronisation.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

sp_setsubscriptionxactseqno est utilisé dans la réplication transactionnelle.

sp_setsubscriptionxactseqno ne peut pas être utilisé dans une topologie de réplication transactionnelle d'égal à égal.

sp_setsubscriptionxactseqno peut être utilisé pour ignorer une transaction spécifique qui génère une erreur lorsqu'elle est appliquée à l'abonné. Lorsqu'un échec se produit et que l'Agent de distribution s'arrête, appelez sp_helpsubscriptionerrors (Transact-SQL) sur le serveur de distribution pour extraire la valeur xact_seqno de la transaction qui a échoué, puis appelez sp_setsubscriptionxactseqno en transmettant cette valeur pour xact_seqno. Ainsi, seules les commandes consécutives à ce numéro séquentiel d'enregistrement sont traitées.

Définissez la valeur 0 pour xact_seqno afin de remettre à l'Abonné toutes les commandes en attente dans la base de données de distribution.

sp_setsubscriptionxactseqno peut échouer si l'Agent de distribution utilise des flux multi-abonnements.

Lorsque cette erreur se produit, vous devez exécuter l'Agent de distribution avec un seul flux d'abonnements. Pour plus d'informations, consultez Agent de distribution de réplication.

Autorisations

Seuls les membres du rôle serveur fixe sysadmin et du rôle de base de données fixe db_owner peuvent exécuter sp_setsubscriptionxactseqno.