Usuário com melhor resposta
Migrar dados de uma coluna SQL Server

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.
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 */
- Editado Mariana Del Nero quinta-feira, 30 de abril de 2015 16:59
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 2 de maio de 2015 00:07
- Marcado como Resposta Eduardo.Romero segunda-feira, 4 de maio de 2015 18:09
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 */
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 2 de maio de 2015 00:07
-
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.
-
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.
-
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 */
- Editado Mariana Del Nero quinta-feira, 30 de abril de 2015 16:59
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 2 de maio de 2015 00:07
- Marcado como Resposta Eduardo.Romero segunda-feira, 4 de maio de 2015 18:09
-