sp_setsubscriptionxactseqno (Transact-SQL)
Utilisé lors de la résolution des incidents pour définir le numéro séquentiel d'enregistrement 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.
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 de 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
Numéro séquentiel d'enregistrement de la transaction suivante sur le serveur de distribution à appliquer à l'Abonné. xact_seqno est de type varbinary(16), sans valeur par défaut.
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 Replication Distribution Agent.
Autorisations
Seuls les membres du rôle de serveur fixe sysadmin et du rôle de base de données fixe db_owner peuvent exécuter sp_setsubscriptionxactseqno.
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. |
Voir aussi
Autres ressources
Omission des erreurs lors de la réplication transactionnelle