none
Inserir dados de uma tabela sql2000 naTabela SQL 2008 RRS feed

  • Pergunta

  • Boa tarde.

    Tenho uma tabela chamada funcionarios no sql 2000 e outra tabela funcionarios no sql2008, alguns registros estão iguais nas duas tabelas mas outros não.

    Eu quero trazer os dados que estão difrentes na tabela do sql 2000 para o sql 2008, sem perder os dados do sql 2008.

    Eu consigo fazer isto?

     

    Att,

    Anderson.

    segunda-feira, 1 de agosto de 2011 16:26

Respostas

  • Anderson,

     

    Caso os dados sejam iguais, vamos supoer que voce possua um campo PK nas tabelas que é o Nome do cara, voce quer manter os 2 na tabela do sql server 2008 ou que o do 2000 atualize o do 2008 ou que mantenha do 2008, porem o que ja tiver do 2000 no 2008, simplismente seja ignorado e apenas novos dados sejam inseridos...?

     

    Se ficou um pouco confuso minha pergunta, de uma pesquisada sobre o comando MERGE, creio que possa te ajudar....

     

    OBS: Vale lembrar que existem datatypes que existem no 2008 e não no 2000, assim como outros que existem no 2000 e não no 2008, voce devera ver essa compatibilidade, coisa que o comando cast pode te ajudar.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Marcado como Resposta Richard Juhasz terça-feira, 23 de outubro de 2012 14:47
    segunda-feira, 1 de agosto de 2011 16:33
    Moderador
  • Anderson

    vc tem alguns caminhos para fazer isto (not in, exists, left join...)

    como no not in (no sql 2000)

    insert into linkedserver2008.base.dbo.tabela
    SELECT * from tabela where codigoPK not int (select codigo from linkedserver2008.base.dbo.tabela)
    


    Vc pode usar tbm o DataCompare que vem no Visual Studio 2008 for databases ou no Visual studio 2010 ultimate, esta ferramenta lista as diferenças de dados e te permite gerar um script de insert ou a propria ferrmenta faz o insert

    Att.
    Marcelo Fernandes

     

     


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    segunda-feira, 1 de agosto de 2011 16:51
    Moderador
  • Anderson,

    Qual o conceito de registro repetido vc tem? É só de analise de PK ou é de todos os campos da tabela?

    Por exemplo:

    SQL 2000

    Codigo         Nome        Campo1

      1               João            Teste

     

    SQL 2008

    Codigo         Nome        Campo1

      1               João        Teste_Teste

     

    Considerando a PK como Codigo e Nome, vc pode ver que a coluna Campo1 é diferente.

     

    Neste caso vale a PK ou vale tb os outros campos?

     

    Att.,


    Marco Antônio Pinheiro / MCTS - MCC http://marcoantoniopinheiro.blogspot.com
    • Marcado como Resposta Richard Juhasz terça-feira, 23 de outubro de 2012 14:47
    segunda-feira, 1 de agosto de 2011 17:05

Todas as Respostas

  • Anderson,

     

    Caso os dados sejam iguais, vamos supoer que voce possua um campo PK nas tabelas que é o Nome do cara, voce quer manter os 2 na tabela do sql server 2008 ou que o do 2000 atualize o do 2008 ou que mantenha do 2008, porem o que ja tiver do 2000 no 2008, simplismente seja ignorado e apenas novos dados sejam inseridos...?

     

    Se ficou um pouco confuso minha pergunta, de uma pesquisada sobre o comando MERGE, creio que possa te ajudar....

     

    OBS: Vale lembrar que existem datatypes que existem no 2008 e não no 2000, assim como outros que existem no 2000 e não no 2008, voce devera ver essa compatibilidade, coisa que o comando cast pode te ajudar.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Marcado como Resposta Richard Juhasz terça-feira, 23 de outubro de 2012 14:47
    segunda-feira, 1 de agosto de 2011 16:33
    Moderador
  • Anderson

    vc tem alguns caminhos para fazer isto (not in, exists, left join...)

    como no not in (no sql 2000)

    insert into linkedserver2008.base.dbo.tabela
    SELECT * from tabela where codigoPK not int (select codigo from linkedserver2008.base.dbo.tabela)
    


    Vc pode usar tbm o DataCompare que vem no Visual Studio 2008 for databases ou no Visual studio 2010 ultimate, esta ferramenta lista as diferenças de dados e te permite gerar um script de insert ou a propria ferrmenta faz o insert

    Att.
    Marcelo Fernandes

     

     


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    segunda-feira, 1 de agosto de 2011 16:51
    Moderador
  • Anderson,

    Qual o conceito de registro repetido vc tem? É só de analise de PK ou é de todos os campos da tabela?

    Por exemplo:

    SQL 2000

    Codigo         Nome        Campo1

      1               João            Teste

     

    SQL 2008

    Codigo         Nome        Campo1

      1               João        Teste_Teste

     

    Considerando a PK como Codigo e Nome, vc pode ver que a coluna Campo1 é diferente.

     

    Neste caso vale a PK ou vale tb os outros campos?

     

    Att.,


    Marco Antônio Pinheiro / MCTS - MCC http://marcoantoniopinheiro.blogspot.com
    • Marcado como Resposta Richard Juhasz terça-feira, 23 de outubro de 2012 14:47
    segunda-feira, 1 de agosto de 2011 17:05