Partilhar via


sp_setsubscriptionxactseqno (Transact-SQL)

Usado durante a solução de problemas para especificar o LSN (número de sequência de log) da próxima transação a ser aplicada pelo Distribution Agent no Assinante, o que permite que o agente ignore uma transação com falha. Esse procedimento armazenado é executado no Assinante, no banco de dados de assinatura. Sem suporte para Assinantes não SQLServer.

Observação sobre cuidadosCuidado

O uso incorreto desse procedimento armazenado ou a especificação incorreta de um valor LSN pode fazer com que o Distribution Agent reverta as alterações que já tinham sido aplicadas no Assinante ou ignore todas as alterações restantes.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ @publisher= ] 'publisher'
    É o nome do Publicador. publisher é sysname, sem padrão.

  • [ @publisher_db= ] 'publisher_db'
    É o nome do banco de dados de publicação. publisher_db é sysname, sem padrão. Para um Editor não SQL Server, publisher_db é o nome do banco de dados de distribuição.

  • [ @publication= ] 'publication'
    É o nome da publicação. publication é sysname, sem padrão. Quando o Distribution Agente compartilhado por mais de uma publicação, você deve especificar um valor de ALL para publication.

  • [ @xact_seqno= ] xact_seqno
    É o xact_seqno da transação que está causando um erro no Assinante. xact_seqno é varbinary (16), sem nenhum padrão.

Conjunto de resultados

Nome da coluna

Tipo de dados

Descrição

ORIGINAL XACT_SEQNO

varbinary(16)

É o LSN original da próxima transação a ser aplicada no Assinante.

UPDATED XACT_SEQNO

varbinary(16)

É o LSN atualizado da próxima transação a ser aplicada no Assinante.

SUBSCRIPTION STREAM COUNT

int

O número de fluxos de assinatura usado durante a última sincronização.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_setsubscriptionxactseqno é usado em replicação transacional.

sp_setsubscriptionxactseqno não pode ser usado em uma topologia de replicação transacional ponto a ponto.

sp_setsubscriptionxactseqno pode ser usado para ignorar uma transação específica que está causando um erro quando aplicada ao Assinante. Quando existe uma falha e antes que o Distribution Agent pare, chame sp_helpsubscriptionerrors (Transact-SQL) no Distribuidor para recuperar o valor xact_seqno da transação com falha e depois chame sp_setsubscriptionxactseqno, passando esse valor para xact_seqno. Isso assegurará que somente os comandos após esse LSN sejam processados.

Especifique um valor de 0 para xact_seqno para entregar todos os comandos pendentes no banco de dados de distribuição para o Assinante.

sp_setsubscriptionxactseqno poderá falhar se o Distribution Agent usar fluxos de várias assinaturas.

Quando esse erro ocorre, você deve executar o Distribution Agent com um fluxo de uma única assinatura. Para obter mais informações, consulte Replication Distribution Agent.

Permissões

Somente membros da função de servidor fixa sysadmin ou db_owner podem executar sp_setsubscriptionxactseqno.