Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Inserir todos os valores de uma tabela em outra tabela em SQL


A instrução insert na verdade tem uma sintaxe para fazer exatamente isso. É muito mais fácil se você especificar os nomes das colunas em vez de selecionar "*":
INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...

É melhor esclarecer isso porque, por algum motivo, este post está recebendo alguns votos negativos.

A sintaxe INSERT INTO ... SELECT FROM é para quando a tabela que você está inserindo ("new_table" no meu exemplo acima) já existe. Como outros já disseram, a sintaxe SELECT ... INTO é para quando você deseja criar a nova tabela como parte do comando.

Você não especificou se a nova tabela precisa ser criada como parte do comando, então INSERT INTO ... SELECT FROM deve funcionar se sua tabela de destino já existir.