locked
Problemas com replicação

    Question

  • 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

    Tuesday, August 29, 2006 5:45 PM

All replies

  • quando vc. tenta resolver o conflito usando a ferramenta qual acao vc. esta tomando ?
    Wednesday, August 30, 2006 10:25 AM
  • 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.

     

    Wednesday, August 30, 2006 11:11 AM
  •  

     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 ]
                ]

    Thursday, August 31, 2006 12:29 AM
  • 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

     

    Thursday, August 31, 2006 11:39 AM
  • Rafael..

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

     

    obrigado..

    Friday, September 01, 2006 3:17 AM