none
Atualização de dados

    Question

  • Bom dia!

    Todo mês extraio um txt de cadastro de Cliente para a base o banco(sqlServer),

    Tem alguma opção em que consigo atualizar os dados  ao  invés de copiar tudo de novo e ficar dados duplicados ?
    Consigo através de uma chave primaria fazer com que ele verifique a linha e atualize ou delete
    caso o cliente não esteja no txt.


    Tuesday, October 02, 2012 12:54 PM

Answers

All replies

  • Sete,

    Voce pode jogar esses dados numa tabela temporaria e utiliza-los para inserior os novos e atualizar os existentes atraves da PK ou chave de negocio, ou voce pode usar a ferramenta "Slowly Change Dimension" que faz essa mesma função, só precisa ver se a forma que ela funciona te atende.

    Abraços!


    Daniel Reino - Analista Business Intelligence / DBA

    Tuesday, October 02, 2012 3:49 PM
  • Sete7,

    Você poderia carregar o seu arquivo texto para uma tabela temporária e utilizar o comando MERGE para validar os dados do arquivo contra sua tabela. Com o comando MERGE você consegue validar se os registros existem, através de uma coluna chave, e atualizá-los se quiser. Ou ainda se não existirem, você pode inserir estes registros.

    A referência do comando MERGE com exemplos você encontra aqui: http://msdn.microsoft.com/en-us/library/bb522522%28v=sql.105%29.aspx

    Att.


    Erickson Ricci
    Microsoft MCITP 2008 Admin, MCTS SQL Server 2005, 2008
    Visite o meu blog: http://ericksonricci.wordpress.com
    Me siga no twitter: @EricksonRicci
    LinkedIN: http://br.linkedin.com/in/ericksonricci
    e-mail: ericksonfabricio@gmail.com
    **Ajude a melhorar o sistema de busca do fórum.Marque a(s) resposta(s) que foram úteis**
    **Se esta resposta solucionou a questão, então, por favor, marque-a como resposta.**

    Wednesday, October 03, 2012 4:31 AM
  • Concordo plenamente com as sugestões do Daniel e o Erickson. Enfatizando que se faz necessário sempre a importação dos dados originados do TXT para uma tabela temporária no SQL. Recomendo a criação de um específico para este tipo de tarefa. Assim vc poderá realizar as limpezas necessárias futuramente neste banco.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    Wednesday, October 03, 2012 12:40 PM
  • Eu só fico preocupado com performance do comando merge e do slowly change dimension no caso do seu arquivo ser muito grande, ai eu recomendo a opção de carregar em temporaria e fazer uma procedure de insert dos novos e uma de update dos existentes.

    Abraços.


    Daniel Reino - Analista Business Intelligence / DBA

    Thursday, October 04, 2012 6:31 PM
  • Bom dia

    Erickson/Daniel/Eduardo

    Consegui fazer jogando numa base intermediária primeiro, até mesmo porque os arquivos são muito grande. 

    Testei os dois e optei por utilizar o comando Merge, mais da para fazer com o  slowly change dimension também.

    Muito obrigado 

    Tuesday, October 09, 2012 2:16 PM
  • Sete7,

    Eu particularmente não gosto muito do Slowly Change Dimension devido a sua forma de configuração que torna o processo bem mais burocrático e até mais lento do que trabalhar com outros formas de análise condicional e manipulação de dados.


    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]

    Tuesday, October 23, 2012 1:03 PM