sp_setsubscriptionxactseqno (Transact-SQL)sp_setsubscriptionxactseqno (Transact-SQL)

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Utilisé pendant le dépannage pour spécifier la dernière transaction fournie à l’aide du numéro de séquence de journal (LSN), ce qui permet de l’Agent de Distribution lors de la transaction suivante.Used during troubleshooting to specify the last delivered transaction using the log sequence number (LSN), allowing the Distribution Agent to begin delivering at the next transaction. Lors du redémarrage, l’Agent de Distribution renvoie transactions supérieure à cette limite (LSN) à partir du cache de base de données de Distribution (msrepl_commands).Upon restarting, the Distribution Agent returns transactions greater than this watermark (LSN) from the Distribution database cache (msrepl_commands). Cette procédure stockée est exécutée sur la base de données d'abonnement de l'Abonné.This stored procedure is executed at the Subscriber on the subscription database. Non pris en charge pour les Abonnés non-SQL Server.Not supported for non-SQL Server Subscribers.

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.Using this stored procedure incorrectly or specifying an incorrect LSN value can cause the Distribution Agent to revert changes that were already applied at the Subscriber or skip over all remaining changes.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

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

ArgumentsArguments

[ @publisher = ] 'publisher' Est le nom du serveur de publication.[ @publisher = ] 'publisher' Is the name of the Publisher. serveur de publication est sysname, sans valeur par défaut.publisher is sysname, with no default.

[ @publisher_db = ] 'publisher_db' Est le nom de la base de données de publication.[ @publisher_db = ] 'publisher_db' Is the name of the publication database. publisher_db est sysname, sans valeur par défaut.publisher_db is sysname, with no default. Pour un serveur non-SQL, publisher_db est le nom de la base de données de distribution.For a non-SQL Server Publisher, publisher_db is the name of the distribution database.

[ @publication = ] 'publication' Est le nom de la publication.[ @publication = ] 'publication' Is the name of the publication. publication est sysname, sans valeur par défaut.publication is sysname, with no default. Lorsque l’Agent de Distribution est partagé par plusieurs publications, vous devez spécifier une valeur All pour publication.When the Distribution Agent is shared by more than one publication, you must specify a value of ALL for publication.

[ @xact_seqno = ] xact_seqno Est le LSN de la transaction suivante sur le serveur de distribution à appliquer sur l’abonné.[ @xact_seqno = ] xact_seqno Is the LSN of the next transaction at the Distributor to be applied at the Subscriber. xact_seqno est varbinary (16) , sans valeur par défaut.xact_seqno is varbinary(16), with no default.

Jeu de résultatsResult Set

Nom de la colonneColumn name Type de donnéesData type DescriptionDescription
XACT_SEQNO D’ORIGINEORIGINAL XACT_SEQNO varbinary(16)varbinary(16) Numéro séquentiel d'enregistrement d'origine de la transaction suivante à appliquer à l'Abonné.The original LSN of the next transaction to be applied at the Subscriber.
XACT_SEQNO MIS À JOURUPDATED XACT_SEQNO varbinary(16)varbinary(16) Numéro séquentiel d'enregistrement mis à jour de la transaction suivante à appliquer à l'Abonné.The updated LSN of the next transaction to be applied at the Subscriber.
NOMBRE DE FLUX DE DONNÉES D’ABONNEMENTSUBSCRIPTION STREAM COUNT intint Nombre de flux d'abonnements utilisés au cours de la dernière synchronisation.The number of subscription streams used during the last synchronization.

Valeurs des codes de retourReturn Code Values

0 (réussite) ou 1 (échec)0 (success) or 1 (failure)

NotesRemarks

sp_setsubscriptionxactseqno est utilisé dans la réplication transactionnelle.sp_setsubscriptionxactseqno is used in transactional replication.

sp_setsubscriptionxactseqno ne peut pas être utilisé dans une topologie de réplication transactionnelle d’égal à égal.sp_setsubscriptionxactseqno cannot be used in a peer-to-peer transactional replication topology.

sp_setsubscriptionxactseqno peut être utilisé pour ignorer une transaction spécifique qui provoque une erreur lorsque s’applique sur l’abonné.sp_setsubscriptionxactseqno can be used to skip a specific transaction that is causing an error when applies at the Subscriber. En cas d’un échec et une fois que l’Agent de Distribution s’arrête, appelez sp_helpsubscriptionerrors (Transact-SQL) sur le serveur de distribution pour récupérer la valeur xact_seqno de la transaction en échec, puis appelez sp_setsubscriptionxactseqno, en passant cette valeur pour xact_seqno.When there is a failure and after the Distribution Agent stops, call sp_helpsubscriptionerrors (Transact-SQL) at the Distributor to retrieve the xact_seqno value of the failed transaction, and then call sp_setsubscriptionxactseqno, passing this value for xact_seqno. Ainsi, seules les commandes consécutives à ce numéro séquentiel d'enregistrement sont traitées.This will ensure that only the commands after this LSN will be processed.

Spécifiez la valeur 0 pour xact_seqno pour fournir toutes les commandes en attente dans la base de données de distribution vers l’abonné.Specify a value of 0 for xact_seqno to deliver all pending commands in the distribution database to the Subscriber.

sp_setsubscriptionxactseqno peut échouer si l’Agent de Distribution utilise des flux multi-abonnements.sp_setsubscriptionxactseqno may fail if the Distribution Agent uses multi-subscription streams.

Lorsque cette erreur se produit, vous devez exécuter l'Agent de distribution avec un seul flux d'abonnements.When this error occurs, you must run the Distribution Agent with a single subscription stream. Pour plus d'informations, consultez Replication Distribution Agent.For more information, see Replication Distribution Agent.

AutorisationsPermissions

Seuls les membres de la sysadmin rôle serveur fixe ou db_owner rôle de base de données fixe peuvent exécuter sp_setsubscriptionxactseqno.Only members of the sysadmin fixed server role or db_owner fixed database role can execute sp_setsubscriptionxactseqno.

En savoir plusSee more

Blog : Comment ignorer une transactionBlog: How to skip a transaction