Compartir a través de


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.

Nota de advertenciaAdvertencia

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.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

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.