Copiar os dados para outra tabela
Como copiar / adicionar dados de uma tabela para outra tabela com o mesmo esquema no servidor SQL?
Editar:
quero dizer que há uma pergunta
select *
into table1
from table2
where 1=1
que cria table1
com o mesmo esquema, bem como dados como em table2
.
Existe alguma consulta curta como esta para copiar apenas dados inteiros para uma tabela já existente?
9 answers
Se ambas as tabelas forem realmente o mesmo esquema:
INSERT INTO newTable
SELECT * FROM oldTable
Caso contrário, terá de indicar os nomes das colunas (a lista de colunas para newTable
é opcional se estiver a indicar um valor para todas as colunas e a seleccionar as colunas pela mesma ordem que o esquema de newTable
:
INSERT INTO newTable (col1, col2, col3)
SELECT column1, column2, column3
FROM oldTable
Esta é a maneira correcta de o fazer:
INSERT INTO destinationTable
SELECT * FROM sourceTable
INSERT INTO table1 (col1, col2, col3)
SELECT column1, column2, column3
FROM table2
Tenta isto:
INSERT INTO MyTable1 (Col1, Col2, Col4)
SELECT Col1, Col2, Col3 FROM MyTable2
Tenta isto:
Insert Into table2
Select * from table1
INSERT INTO DestinationTable(SupplierName, Country)
SELECT SupplierName, Country FROM SourceTable;
Não é obrigatório que os nomes das colunas sejam os mesmos.
Forma simples se a nova tabela não existir e você quiser fazer uma cópia da tabela antiga com tudo, em seguida, a seguir funciona no servidor SQL.
SELECT * INTO NewTable FROM OldTable
Apenas para informação completa, tenha cuidado que estes comandos não copiam índices e gatilhos da tabela! Veja a publicação seguinte para copiar os índices e despoletar o programa: Copiar programaticamente os índices de uma tabela para outra no servidor SQL
select col1,col2,col3 into table2
from table 1