PROBLEMA: Operações em massa em tabelas de resultado em linhas não replicado na replicação de mesclagem

Traduções deste artigo Traduções deste artigo
ID do artigo: 275680 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Ao usar operações em massa, como o utilitário de linha de comando bcp , instruções BULK INSERT Transact-SQL, a cópia em massa API ou o SQL Server Data Transformation Services (DTS), para carregar dados em tabelas que participam da replicação de mesclagem, a menos que determinadas medidas são obtidas, as linhas inseridas não são replicadas para outros servidores.

Causa

Porque essas operações em massa são otimizadas para cargas rápidas e eficientes de grandes quantidades de dados, por padrão eles não são acionados disparadores na tabela recebendo os dados inseridos. Como a replicação de mesclagem requer o uso do sistema disparadores em tabelas participantes para controlar as alterações entre o publisher e o assinante, se os disparadores não são acionados, replicação de mesclagem não pode replicar as linhas.

Como Contornar

A solução alternativa para esse problema depende do método que você está usando para dados de cópia em massa e a versão do SQL Server você está usando:

  • Se você estiver usando o SQL Server DTS para inserir linhas, desmarque a opção Usar rápida carga (habilitada por padrão) na guia Opções da folha de propriedades Tarefa de transformação de dados . No entanto, observe que o SQL Server 2000 em massa inserir tarefas não expõe a capacidade de alterar a opção Carregar rápida a usar , apenas a transformação tarefa Data faz.

  • Se você estiver usando o utilitário de linha de comando bcp ou a instrução Transact-SQL BULK INSERT no SQL Server 2000, você deve usar a opção FIRE_TRIGGERS. Observe que a opção FIRE_TRIGGERS não está disponível no SQL Server versão 7.0. Porque o FIRE_TRIGGERS opção para operações em massa no SQL Server versão 7.0 não está disponível, qualquer operação em massa fora do DTS resulta em linhas não replicadas para os assinantes.

  • Quando você usa a API de cópia em massa através do ODBC, você deve ativar a opção FIRE_TRIGGERS na alça de conexão apropriada por meio de uma chamada para a função bcp_control() .

  • Quando você usa a interface IRowsetFastLoad OLE DB, especifique a opção FIRE_TRIGGERS para a propriedade SSPROP_FASTLOADOPTIONS na interface IOpenRowset.

Mais Informações

Inserir, excluir e comandos de atualização que precisam ser replicados em uma publicação de replicação de mesclagem são controlados pelo agente de mesclagem quando forem adicionados às tabelas MSmerge_contents e MSmerge_tombstone . Linhas são adicionadas a essas tabelas através de disparadores de sistema criados nas tabelas durante a instalação de replicação.

Operações em massa não verificar restrições da tabela, ou acionado disparadores na tabela de destino. Como resultado, os disparadores de sistema de replicação de mesclagem não são acionados. Como esses disparadores não são acionados, as linhas que são "alterado" por inserir em massa operações não são adicionadas à tabela MSmerge_contents e, portanto, não são replicados para os assinantes.

REFERÊNCIAS

Para obter mais informações sobre os efeitos de disparador de execução em tabelas de destino quando a opção FIRE_TRIGGERS é especificada, consulte o tópico "Usando o bcp e BULK INSERT" nos manuais online do SQL Server 2000.

Propriedades

ID do artigo: 275680 - Última revisão: sexta-feira, 31 de outubro de 2003 - Revisão: 3.2
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Palavras-chave: 
kbmt kbprb KB275680 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 275680

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