none
Copiar dados e estrutura RRS feed

  • Pergunta

  • Boa tarde, tenho algumas tabelas que estou tentando copiar entre dois bancos, porém a origem possui alguns campos com tamanho de campo diferente da destino, e pelo Import Export Data eu estou conseguindo apenas gerenciar dados (se fará append ou não) não sei como dizer para o SQL se na tabela A tiver campos a mais ou diferentes dos existente da tabela B é para ele criar tudo isso na tabela B.

    Existe essa forma?

     

    Obrigada,

     

    Letícia

    segunda-feira, 9 de maio de 2011 19:34

Respostas

  • Leticia,

     

    Não existe não, minha recomendação? Cria no banco destino a tabela origem via export/import, depois, rode um comando +- assim:

    INSERT INTO TABELA NOVA

    SELECT CAMPOS + NULL OU 0´s para se adequar a nova estrutura de tabelas FROM TABELA VELHA

    Se for necessario alguma verificação de dados, de não inserir is repetidos por exemplo, utilize um outer join com a tabela nova no mesmo select.


    Oracle OCA11g, MCC 2011!
    segunda-feira, 9 de maio de 2011 19:41
    Moderador
  • Letícia6,

    Outra possibilidade seria realizar um backup do seu banco de dados e restaurar no outro servidor.


    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]
    • Marcado como Resposta Richard Juhasz quinta-feira, 12 de maio de 2011 19:01
    quarta-feira, 11 de maio de 2011 19:02
    Moderador

Todas as Respostas

  • Leticia,

     

    Não existe não, minha recomendação? Cria no banco destino a tabela origem via export/import, depois, rode um comando +- assim:

    INSERT INTO TABELA NOVA

    SELECT CAMPOS + NULL OU 0´s para se adequar a nova estrutura de tabelas FROM TABELA VELHA

    Se for necessario alguma verificação de dados, de não inserir is repetidos por exemplo, utilize um outer join com a tabela nova no mesmo select.


    Oracle OCA11g, MCC 2011!
    segunda-feira, 9 de maio de 2011 19:41
    Moderador
  • Letícia6,

    Realmente neste caso será um trabalho manual, via comandos SQL.

    Tenho este tipo de demanda aqui e fazendo a sugestão do Fabrizzio creio que irá atender.

     

    Att.,


    Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com Se o post foi útil, não esqueça de marcá-lo.
    quarta-feira, 11 de maio de 2011 16:48
  • Letícia6,

    Outra possibilidade seria realizar um backup do seu banco de dados e restaurar no outro servidor.


    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]
    • Marcado como Resposta Richard Juhasz quinta-feira, 12 de maio de 2011 19:01
    quarta-feira, 11 de maio de 2011 19:02
    Moderador
  • Leticia, utilizando o dts ou ssis vc consegue tratar os campos que recebem dados ou nao, mas caso os campos na tabela destino possuem tamanho inferior aos definidos na tabela origem vc precisará fazer alteração na estrutura da tabela destino para que seja possível importar os dados.

    Como os colegas já comentaram o trabalho é um pouco munual e para nao comprometer sua tabela destino sugiro que vc crie uma tabela no servidor destino, seja tmp ou fisica, e leve os dados da maneira como eles estao nao origem. Verificar as diferencas entre os datatypes das tabelas origem e destino e identifique as colunas que nao receberão dados (existem ferramentas que realizam essa comparacao. ex: sqlcompare), feito isso vc conseguiria fazer a importacao dos dados para a tabela destino seja com as ferramentas de etl do sql server, query dinâmica para montar seu insert ou select into....

     

    []s


    Wagner Andrade - SCSP - MCP - MCITP DBA
    sexta-feira, 20 de maio de 2011 13:05