Qual é a diferença entre usar
SELECT ... INTO MyTable FROM...
e
INSERT INTO MyTable (...)
SELECT ... FROM ....
?
No BOL [ INSERT , SELECT ... INTO ], eu sei que o uso de SELECT ... INTO criará a tabela de inserção no grupo de arquivos padrão, se ele ainda não existir, e que o log desta declaração depende da recuperação modelo do banco de dados.
- Qual afirmação é preferível?
- Existem outras implicações de desempenho?
- Qual é um bom caso de uso para SELECT ... INTO sobre INSERT INTO ...?
Edit: Eu já afirmei que sei que SELECT INTO ... cria uma tabela onde ela não existe. O que eu quero saber é que o SQL inclui esta declaração por um motivo, o que é? Está fazendo algo diferente nos bastidores para inserir linhas, ou é apenas açúcar sintático em cima de um CREATE TABLE
e INSERT INTO
.
INSERT INTO
possui duas palavras-chave (selecione e insira) logo no início, que avisam ao mundo que essa não é uma instrução SQL comum, enquantoSELECT ... INTO
começam, pelo menos, a parecer uma instrução SQL comum. Um pequeno motivo para favorecer o primeiro.