CORRECÇÃO: Algumas alterações podem não ser replicadas para o subscritor correctamente no SQL Server 2005 ou SQL Server 2008 quando a soma dos parâmetros exceder 2,100

Traduções de Artigos Traduções de Artigos
Artigo: 959893 - Ver produtos para os quais este artigo se aplica.
N.º de bugs: 50004054 (correcção SQL); 50004028 (correcção SQL)

A Microsoft distribui Microsoft SQL Server 2005 ou SQL Server 2008 corrige como um ficheiro transferível. Uma vez que as correcções são cumulativas, cada nova versão contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2005 ou SQL Server 2008 anterior corrigir lançamento.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Considere o seguinte cenário:
  • Microsoft SQL Server 2005 ou do Microsoft SQL Server 2008, pode configurar uma replicação transaccional.
  • A replicação transaccional contém alguns artigos.
  • Um dos artigos, utilize procedimentos armazenados para entregar o comando Inserir, o comando de actualização e o comando delete. Por exemplo, definir instrução entrega utilizar chamada <stored procedure> na janela Propriedades do artigo. Ou, especifique os comandos utilizando @ ins_cmd parâmetro, @ del_cmd parâmetro e @ upd_cmd parâmetro sp_addarticle procedimento armazenado.
  • Outro artigo, utilize comandos de Transact-SQL para fornecer as instruções.
  • Efectuar algumas alterações para os artigos. As alterações são enviadas para o subscritor no mesmo lote de execução.
  • A soma dos parâmetros necessários para entregar a secção exceder 2,100.

    Nota Se utilizar o SQL Profiler rastreio para capturar um rastreio, poderá encontrar o procedimento sp_executesql armazenado para a secção seja invocada pelo serviço de distribuição.
  • Sincronizar os dados.
Neste cenário, algumas alterações podem não ser replicadas para o subscritor correctamente.

Nota Pode verificar que este problema ocorre utilizando a ferramenta de comparação de tabela (Tablediff.exe).

Além disso, a instrução que ocorre no final da secção é ignorada. Por predefinição, uma secção contém 100 transacções.

Nota Pode visualizar os comandos replicados utilizando o procedimento sp_browsereplcmds armazenados na base de dados distribuição.

Não nesta situação, se a instrução não atendida efectua uma operação INSERT, uma linha pode ser executada no subscritor. Em seguida, se ocorrerem operações DML posteriores na linha não atendida no Editor, falha do serviço de distribuição e receberá a seguinte mensagem de "erro 20598":
A linha não foi encontrada no subscritor ao aplicar o comando replicado.

Causa

Agente de distribuição deve detectar se for excedido o limite máximo de parâmetro 2,100 para procedimentos armazenados. Em seguida, serviço de distribuição deve mover os comandos overflowing para o próximo lote de execução. No entanto, devido a um erro, o último comando é ignorado e não é processado.

Resolução

SQL Server 2005 Service Pack 2

importante Tem de utilizar esta correcção se estiver a executar o SQL Server 2005 Service Pack 2.

A correcção para este problema foi disponibilizada pela primeira vez na actualização cumulativa 11 para o SQL Server 2005 Service Pack 2. Para obter mais informações sobre este pacote de actualização cumulativa, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
958735Pacote de actualização cumulativa 11 para o SQL Server 2005 Service Pack 2
Nota Uma vez que as compilações são cumulativas, cada nova versão de correcção contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2005 anterior corrigir lançamento. A Microsoft recomenda que considerar a aplicação a versão de correcção mais recente que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
937137Cria o SQL Server 2005 que foram disponibilizadas após o lançamento do SQL Server 2005 Service Pack 2
Microsoft SQL Server 2005 são criadas correcções para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2005 Service Pack 2 para uma instalação do SQL Server 2005 Service Pack 2. Por predefinição, qualquer correcção fornecida num service pack do SQL Server está incluída no próximo service pack do SQL Server.

Nota Para subscrições de emissão, aplica a actualização cumulativa 11 o servidor de distribuição. Para subscrições de solicitação, aplica a actualização cumulativa 11 os subscritores.

SQL Server 2005 Service Pack 3

importante Tem de utilizar esta correcção se estiver a executar o SQL Server 2005 Service Pack 3.

A correcção para este problema também posteriormente foi disponibilizada na actualização cumulativa 1 para o SQL Server 2005 Service Pack 3. Para obter mais informações sobre este pacote de actualização cumulativa, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
959195Pacote de actualização cumulativa 1 para o SQL Server 2005 Service Pack 3
Nota Uma vez que as compilações são cumulativas, cada nova versão de correcção contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2005 anterior corrigir lançamento. A Microsoft recomenda que considerar a aplicação a versão de correcção mais recente que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
960598Cria o SQL Server 2005 que foram disponibilizadas após o lançamento do SQL Server 2005 Service Pack 3
Microsoft SQL Server 2005 são criadas correcções para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2005 Service Pack 3 para uma instalação do SQL Server 2005 Service Pack 3. Por predefinição, qualquer correcção fornecida num service pack do SQL Server está incluída no próximo service pack do SQL Server.

Nota Para subscrições de emissão, aplica a actualização cumulativa 1 no servidor de distribuição. Para subscrições de solicitação, aplica a actualização cumulativa 1 os subscritores.

SQL Server 2008

A correcção deste problema primeiro foi disponibilizada em 3 de actualização cumulativa. Para obter mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
960484Pacote de actualização cumulativa 3 para o SQL Server 2008
Nota Uma vez que as compilações são cumulativas, cada nova versão de correcção contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2008 anterior corrigir lançamento. Recomendamos que considere aplicar a versão de correcção mais recente que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
956909O SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008
Nota Para subscrições de emissão, aplica a actualização cumulativa 3 o servidor de distribuição. Para subscrições de solicitação, aplica a actualização cumulativa 3 os subscritores.

Como contornar

Para contornar este problema, utilize um dos seguintes métodos.

Método 1

Diminua o valor do parâmetro CommitBatchSize ' Serviço de distribuição. Por conseguinte, pode evitar exceder 2,100 parâmetros por lote de transacções consolidadas.

Método 2

Utilize o mesmo mecanismo de comandos para todos os artigos na publicação. Evite misturar os mecanismos de entrega comandos para artigos na mesma publicação.

Para evitar o erro 20598

Poderá ocorrer o erro 20598 como um efeito secundário desta questão. Para evitar o erro 20598, pode utilizar o -SkipErrors 20598 mudar. Depois de activar este parâmetro, o serviço de distribuição regista o erro e, em seguida, continua a processar as linhas adicionais que devem ser entregues. Depois do serviço de distribuição ignora o erro 20598, integridade dos dados permanece comprometida devido a linha em falta. Poderá ter de eliminar a linha e volte a inserir a linha no Editor para entregar as alterações a todos os subscritores.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Mais Informação

SQL Server 2005

Para obter mais informações sobre os ficheiros que são alterados e para obter informações sobre quaisquer pré-requisitos para aplicar o pacote de actualização cumulativa que contém a correcção que é descrita neste artigo da base de dados de conhecimento da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
958735Pacote de actualização cumulativa 11 para o SQL Server 2005 Service Pack 2

SQL Server 2008

Para obter mais informações sobre os ficheiros que são alterados e para obter informações sobre quaisquer pré-requisitos para aplicar o pacote de actualização cumulativa que contém a correcção que é descrita neste artigo da base de dados de conhecimento da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
960484Pacote de actualização cumulativa 3 para o SQL Server 2008

Referências

Para obter mais informações sobre a lista de compilações disponíveis depois de SQL Server Service Pack 2, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
937137Cria o SQL Server 2005 que foram disponibilizadas após o lançamento do SQL Server 2005 Service Pack 2
Para obter mais informações sobre o modelo de assistência incremental para o SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
935897Um modelo de assistência incremental está disponível a equipa do SQL Server para proporcionar correcções para problemas comunicados
Para obter mais informações sobre como obter o SQL Server 2005 Service Pack 2, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
913089Como obter o service pack mais recente para o SQL Server 2005
Para mais informações sobre as novas funcionalidades e melhorias no SQL Server 2005 Service Pack 2, visite o seguinte Web site da Microsoft:
http://go.microsoft.com/fwlink/?LinkId=71711
Para obter mais informações sobre o esquema de atribuição de nomes para as actualizações do SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
822499Novo esquema de atribuição de nomes de ficheiros para pacotes de actualização de software do Microsoft SQL Server
Para obter mais informações sobre a terminologia de actualização de software, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Propriedades

Artigo: 959893 - Última revisão: 19 de janeiro de 2009 - Revisão: 4.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
Palavras-chave: 
kbmt kbsurveynew kbhotfixrollup kbfix kbqfe kbexpertiseadvanced KB959893 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 959893

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com