Partager via


sp_setsubscriptionxactseqno (Transact-SQL)

S’applique à : SQL Server

Utilisé lors de la résolution des problèmes pour spécifier la dernière transaction remise à l’aide du numéro de séquence de journal (LSN), ce qui permet à la Agent de distribution de commencer la remise à la prochaine transaction. Une fois qu’elle a redémarré, la Agent de distribution retourne des transactions supérieures à ce filigrane (LSN) à partir du cache de base de données de distribution (msrepl_commands). 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.

Attention

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

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @publisher = ] N’publisher'

Nom du serveur de publication. @publisher est sysname, sans valeur par défaut.

[ @publisher_db = ] N’publisher_db'

Nom de la base de données de publication. @publisher_db est sysname, sans valeur par défaut. Pour un serveur de publication non-SQL Server, @publisher_db est le nom de la base de données de distribution.

[ @publication = ] N’publication'

Nom de la publication. @publication est sysname, sans valeur par défaut. Lorsque plusieurs publications partagent le Agent de distribution, vous devez spécifier la valeur de ALL @publication.

[ @xact_seqno = ] xact_seqno

LSN de la transaction suivante sur le serveur de distribution à appliquer sur l’Abonné. @xact_seqno est varbinary(16), sans valeur par défaut.

Jeu 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 (réussite) 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 à l’origine d’une erreur lorsqu’elle s’applique à l’Abonné. En cas d’échec et après l’arrêt du Agent de distribution, appelez sp_helpsubscriptionerrors au serveur de distribution pour récupérer la xact_seqno valeur de la transaction ayant échoué, puis appelezsp_setsubscriptionxactseqno, en passant cette valeur pour @xact_seqno. Cela garantit que seules les commandes après ce NSN sont traitées.

Spécifiez la valeur de 0 @xact_seqno pour remettre toutes les commandes en attente dans la base de données de distribution à l’Abonné.

sp_setsubscriptionxactseqnorisque d’échouer si le 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 Replication Distribution Agent.

autorisations

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