none
replicação transacional RRS feed

  • Pergunta

  • Alguém poderia me explicar porque a replicação transacional necessita de uma chave primária?

    Qual a lógica de existir essa chave primária?

    Se alguém deletar algum registro, pode haver duplicidade(replicação transacional) né isso? mais iai, qual a utilização dessa primary key?


    • Movido Gustavo Maia Aguiar segunda-feira, 29 de agosto de 2011 23:11 (De:Gerenciamento, Configuração, Instalação, e Segurança)
    sábado, 27 de agosto de 2011 18:52

Respostas

  • Olá JustSQL na realidade esta quebra de integridade nunca vai acontecer na replicação devido a necessidade de existência da chave.

    Não vejo uma forma de alterar a chave fazendo perder integridade. Se existe chave, existe integridade caso esta alteração não reflita os dados da tabela tu nem conseguirá alterar esta chave na base original.

    Se tiver algum caso que exemplifique este problema nos encaminhe podemos testar para ver o que acontece.

    Mas por regra esta chave existe exatamente para que não ocorra perda de integridade e os teus dados saim da origem e possam ser replicados diretamente na outra base da mesma forma.

    Se alterar a chave na origem será replicado e alterado no destino e consequentemente os dados posteriores.

    Qualquer coisa manda ai.

    Vlew.

    segunda-feira, 19 de dezembro de 2011 10:38

Todas as Respostas

  • JustSQL,

    A primary key é utilizado na processo de replicação transacional para controle e integridade dos dados que estão sendo transacionados, além de possibilitar uma forma de relacionamento dos dados replicados.

    Ao configurar um processo de replicação o SQL Server acrescenta nas tabelas envolvidas na replicação um campo MS_REPL e justamente este campo vai receber um valor correspondente a ordem de replicação da linha.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    sábado, 27 de agosto de 2011 19:52
    Moderador
  • Junior,

    Vamo supor o seguinte;

    Tenho uma replicação transacional da matriz para uma filial.

    Matriz: Centro
    Filial: Salvador

    Se caso eu escolhe a replicação transacional, e outro carinha atualizou a chave primária, ou fez alguma modificação fazendo com que perca a integridade, como vai funcionar essa integridade dos dados entao?

    sábado, 27 de agosto de 2011 20:07
  • JustSQL,

    Cara, realmente é algo a ser considerado, mas de que forma você imagina ou poderia ocorrer esta quebra de integridade, pois se estamos falando de chave primária existem algumas regras que o próprio SQL Server respeita como também a aplicação.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    quinta-feira, 1 de setembro de 2011 17:44
    Moderador
  • Olá JustSQL na realidade esta quebra de integridade nunca vai acontecer na replicação devido a necessidade de existência da chave.

    Não vejo uma forma de alterar a chave fazendo perder integridade. Se existe chave, existe integridade caso esta alteração não reflita os dados da tabela tu nem conseguirá alterar esta chave na base original.

    Se tiver algum caso que exemplifique este problema nos encaminhe podemos testar para ver o que acontece.

    Mas por regra esta chave existe exatamente para que não ocorra perda de integridade e os teus dados saim da origem e possam ser replicados diretamente na outra base da mesma forma.

    Se alterar a chave na origem será replicado e alterado no destino e consequentemente os dados posteriores.

    Qualquer coisa manda ai.

    Vlew.

    segunda-feira, 19 de dezembro de 2011 10:38
  • Marcus,

    Eu concordo com você, pois todo controle transacional ocorrido dentro da transação é através da coluna chave criada durante a configuração da replicação.

    Talvez possa existir alguma outra configuração ou propriedade do ambiente que o JustSQL ainda não identificou.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    segunda-feira, 19 de dezembro de 2011 11:22
    Moderador