locked
Problemas com replicação RRS feed

  • Pergunta

  • Ola

    Utilizo o sql-server 2000 para fazer replicação entre 9 filiais do tipo merge. Tenho uma tabela chamada PEDIDOS e outra chamada PEDIDOS_ITENS

    A primary key na tabela PEDIDOS é FILIAL + CODIGO

    A primary key na tabela PEDIDOS_ITENS é FILIAL + CODIGO + PRODUTO

    Tenho uma foreign key da tabela PEDIDOS_ITENS para a tabela PEDIDOS

    Acontece que as vezes o sql tenta fazer a replicação primeiro do PEDIDO_ITENS e quando chega na filialdá o erro de foreign key. Ai ele volta na matriz e exclui o produto do pedido. Isso acontece com uns 3 pedidos por semana. O erro que aparece no visualizador de conflitos é o seguinte:

    The row was inserted at 'MAXIMUS.Dados_Sge' but could not be inserted at 'LOJA09.Dados_Sge'.
    INSERT statement conflicted with TABLE FOREIGN KEY constraint 'FK_PEDIDOSFILIAIS_ITENS_CHAVE1'.
    The conflict occurred in database 'Dados_Sge', table 'PEDIDOSFILIAIS'.

    Já apaguei a tabela e recriei novamente, mas não deu certo. Alguem sabe o que pode estar ocorrendo?

    Obrigado,

    Carlo

    terça-feira, 29 de agosto de 2006 17:45

Todas as Respostas

  • quando vc. tenta resolver o conflito usando a ferramenta qual acao vc. esta tomando ?
    quarta-feira, 30 de agosto de 2006 10:25
  • Eu clico no botão RESOLVE WITH THIS DATA

    Quando clico neste botão o SQL torna incluir o produto e replica corretamente, porque ai a capa do pedido já existe na filial.

     

    quarta-feira, 30 de agosto de 2006 11:11
  •  

     Carlo...

           Provavelmente a FK foi criada com a opção  "Enforce relationship for replication", desmarque essa opção que o problema não vai ocorrer mas, a opção pelo t-sql é só fazer um  NOT FOR REPLICATION .

     

       | [ [ FOREIGN KEY ]
                REFERENCES ref_table [ ( ref_column ) ]
                [ ON DELETE { CASCADE | NO ACTION } ]
                [ ON UPDATE { CASCADE | NO ACTION } ]
                [ NOT FOR REPLICATION ]
                ]

    quinta-feira, 31 de agosto de 2006 00:29
  • Rafael,

    Com certeza essa dica que você passou vai resolver o problema, porque ai o SQL não vai verificar a foreign key no momento da replicação.

    Valeu cara, muito obrigado

    Abraço

     

    quinta-feira, 31 de agosto de 2006 11:39
  • Rafael..

    Realmente funcionou, estava com problemas de fk na minha replicação, e agora não tenho mas..

     

    obrigado..

    sexta-feira, 1 de setembro de 2006 03:17