none
Migrar dados de uma coluna SQL Server RRS feed

  • Pergunta

  • Boa tarde,

    Vou alterar a estrutura de uma tabela em produção. Pretendo criar a nova tabela com a estrutura atualizada e migrar apenas os dados da coluna, isso na mesma base de dados.

    Como poderia fazer isso? De preferência com algum assistente do SQL Server para agilizar a migração. Eu procurei pelo Task > Import/Export, porém seria para migrar uma tabela inteira, não consegui usar essa opção para migrar os dados de uma coluna para uma coluna diferente na outra tabela.

    Qualquer ajuda, fico muito grato. Abraço.

    quinta-feira, 30 de abril de 2015 15:05

Respostas

  • Fábio,

    O SELECT na tabela antiga já traz todos os 100 registros.
    O comando que passei pega todos os registros da colunaX - TabelaAntiga e insere na ColunaY - TabelaNova.

    Não entendi muito bem a sua colocação de " Insert simples como voce citou nesse caso não funciona, preciso de alguma lógica mais elaborada para executar todos."

    Que  "todos" são esses? Porque da maneira como coloquei ele irá inserir todos os que retornarem no select


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */


    quinta-feira, 30 de abril de 2015 16:58

Todas as Respostas

  • Fábio,

    Se entendi você quer mover apenas os dados da TabelaAntiga..colunaX  para TabelaNova..ColunaY. É isso?

    Se elas estão na mesma base, porque você não faz um INSERT simples? Algo como 

    INSERT INTO TabelaNova (ColunaY)
    SELECT ColunaX From TabelaAntiga



    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    quinta-feira, 30 de abril de 2015 16:16
  • Boa Tarde Fabio,

    Tenta desta forma

    CREATE TABLE #TEMP
    (AAA INT, BBBB INT)
    
    INSERT INTO #TEMP(AAA, BBBB) VALUES('00000', '444444444')
    INSERT INTO #TEMP(AAA, BBBB) VALUES('234234', '23424442256')
    
    SELECT * FROM #TEMP
    
    CREATE TABLE #TEMPB
    (XXXX INT, YYYY INT)
    
    INSERT INTO #TEMPB 
    SELECT AAA, NULL FROM #TEMP
    
    SELECT * FROM #TEMPB

    []'s,

    Anderson


    Se o meu conteúdo resolveu o seu problema ou sua dúvida, então marque como "Resposta", ou se foi útil, "Vote". Pois isso ajudará outras pessoas com o mesmo problema ou dúvida.

    quinta-feira, 30 de abril de 2015 16:30
  • Mariana, Boa tarde.

    Obrigado pela resposta. Digamos que na coluna antiga tenha por exemplo 100 registros, esse select que voce fez traria todos os 100 registros, sendo assim como eu vou inserir todos em um único insert? Insert simples como voce citou nesse caso não funciona, preciso de alguma lógica mais elaborada para executar todos.

    Agradeço a atenção.

    quinta-feira, 30 de abril de 2015 16:53
  • Fábio,

    O SELECT na tabela antiga já traz todos os 100 registros.
    O comando que passei pega todos os registros da colunaX - TabelaAntiga e insere na ColunaY - TabelaNova.

    Não entendi muito bem a sua colocação de " Insert simples como voce citou nesse caso não funciona, preciso de alguma lógica mais elaborada para executar todos."

    Que  "todos" são esses? Porque da maneira como coloquei ele irá inserir todos os que retornarem no select


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */


    quinta-feira, 30 de abril de 2015 16:58
  • Fabio essa coluna nova vai ter algum valor deafult? se não vc vai preencher o valor ou vai ficar nulo?


    Se a resposta foi útil por favor classifique. Tiago Neves - @tiagolneves

    quinta-feira, 30 de abril de 2015 17:01