sp_setsubscriptionxactseqno (Transact-SQL)
Se utiliza durante la solución de problemas para especificar el número de secuencia de registro (LSN) de la siguiente transacción que se va a aplicar al Agente de distribución en el suscriptor, lo que permite al agente omitir una transacción que ha dado error. Este procedimiento almacenado se ejecuta en el suscriptor de la base de datos de suscripciones. No se admite para suscriptores que no sean de SQL Server.
Advertencia |
---|
El uso incorrecto de este procedimiento almacenado o la especificación de un valor de LSN incorrecto pueden ocasionar que el Agente de distribución revierta los cambios ya aplicados en el suscriptor o que omita todos los cambios restantes. |
Sintaxis
sp_setsubscriptionxactseqno [ @publisher= ] 'publisher', [ @publisher_db= ] 'publisher_db', [ @publication= ] 'publication', [ @xact_seqno= ] xact_seqno
Argumentos
[ @publisher= ] 'publisher'
Es el nombre del publicador. publisher es de tipo sysname y no tiene valor predeterminado.[ @publisher_db= ] 'publisher_db'
Es el nombre de la base de datos de la publicación. publisher_db es de tipo sysname y no tiene valor predeterminado. En un publicador que no es de SQL Server, publisher_db es el nombre de la base de datos de distribución.[ @publication= ] 'publication'
Es el nombre de la publicación. publication es de tipo sysname y no tiene valor predeterminado. Cuando varias publicaciones comparten el Agente de distribución, debe especificarse un valor ALL para publication.[ @xact_seqno= ] xact_seqno
Es el valor de xact_seqno de la transacción que está produciendo un error en el suscriptor. xact_seqno es de tipo varbinary (16) y no tiene valor predeterminado.
Conjunto de resultados
Nombre de columna |
Tipo de datos |
Descripción |
---|---|---|
ORIGINAL XACT_SEQNO |
varbinary(16) |
El LSN original de la siguiente transacción que se va a aplicar en el suscriptor. |
UPDATED XACT_SEQNO |
varbinary(16) |
El LSN actualizado de la siguiente transacción que se va a aplicar en el suscriptor. |
SUBSCRIPTION STREAM COUNT |
int |
El número de secuencias de suscripción utilizadas durante la última sincronización. |
Valores de código de retorno
0 (correcto) o 1 (error)
Notas
sp_setsubscriptionxactseqno se utiliza en la replicación transaccional.
sp_setsubscriptionxactseqno no se puede utilizar en una topología de replicación transaccional de punto a punto.
El procedimiento almacenado sp_setsubscriptionxactseqno se puede utilizar para omitir una transacción específica que esté causando un error cuando se aplica en el suscriptor. Cuando se produce un error y después de que el Agente de distribución se detenga, llame a sp_helpsubscriptionerrors (Transact-SQL) en el distribuidor para recuperar el valor xact_seqno de la transacción que produjo el error y, después, a sp_setsubscriptionxactseqno, pasando este valor para xact_seqno. Así se garantizará que se procesen solamente los comandos después de este LSN.
Especifique el valor 0 para xact_seqno a fin de entregar todos los comandos pendientes de la base de datos de distribución al suscriptor.
sp_setsubscriptionxactseqno puede producir un error si el Agente de distribución utiliza secuencias de varias suscripciones.
Cuando se produzca este error, debe ejecutar el Agente de distribución con una secuencia de suscripción única. Para obtener más información, vea Agente de distribución de replicación.
Permisos
Solo los miembros de la función fija de servidor sysadmin o de la función fija de base de datos db_owner pueden ejecutar sp_setsubscriptionxactseqno.
Historial de cambios
Contenido actualizado |
---|
Se ha cambiado la definición del argumento @xact_seqno. El argumento debe contener el valor de xact_seqno de la transacción que no se puede aplicar en el suscriptor. La definición anterior especificaba la siguiente transacción después de la que producía el error; este concepto era incorrecto. |