Compartilhar via


MSSQL_ENG020598

Detalhes da mensagem

Nome do produto

SQL Server

Versão do produto

10.0

Número da compilação do produto

 

ID do evento

20598

Origem do evento

MSSQLSERVER

Componente

Mecanismo de Banco de Dados do SQL Server

Nome simbólico

Texto da mensagem

A linha não foi encontrada no Assinante ao aplicar o comando replicado.

Explicação

Esse erro ocorre na replicação de transação quando o Distribution Agent tenta atualizar uma linha no Assinante, mas a linha foi excluída ou a chave primária da linha foi alterada. Por padrão, os Assinantes de publicações transacionais devem ser tratados como somente leitura, porque as alterações não são propagadas de volta ao Publicador. Para a replicação de transação, as alterações do usuário devem ser realizadas no Assinante somente se forem usadas assinaturas que podem ser atualizadas ou replicação ponto a ponto (P2P). Para obter mais informações sobre essas opções, consulte Assinaturas atualizáveis para replicação de transação e Replicação de transação ponto a ponto.

Ação do usuário

Para resolver esse problema:

  1. Se for necessário que a replicação prossiga enquanto você identifica a origem do erro, especifique o parâmetro -SkipErrors 20598 para o Distribution Agent. Isso permite que o agente ignore alterações que resultem no erro 20598, enquanto permite que outras alterações sejam replicadas. Para obter mais informações, consulte Ignorando erros na replicação transacional.

  2. Identifique quais linhas no Assinante foram excluídas ou possuem uma chave primária diferente daquela das linhas correspondentes no Publicador. É possível usar o Utilitário tablediff para determinar quais linhas são diferentes nos bancos de dados de publicação e de assinatura. Para obter mais informações sobre como usar esse utilitário com bancos de dados replicados, consulte Como comparar tabelas replicadas para descobrir diferenças (Programação de Replicação).

  3. Corrija as linhas no Assinante usando o utilitário tablediff ou qualquer outro método.

  4. (Opcional) Remova o parâmetro - SkipErrors.