-
Eles fazem coisas diferentes. UseINSERT
quando a tabela existe. UseSELECT INTO
quando não.
-
Sim.INSERT
sem dicas de tabela é normalmente registrado.SELECT INTO
é registrado minimamente, assumindo que os sinalizadores de rastreamento adequados estejam definidos.
-
Na minha experiênciaSELECT INTO
é mais comumente usado com conjuntos de dados intermediários, como#temp
tabelas, ou para copiar uma tabela inteira como para um backup.INSERT INTO
é usado quando você insere em uma tabela existente com uma estrutura conhecida.
EDITAR
Para resolver sua edição, eles fazem coisas diferentes. Se você está fazendo uma tabela e quer definir a estrutura use
CREATE TABLE
e INSERT
. Exemplo de um problema que pode ser criado:Você tem uma pequena tabela com um campo varchar. A maior string em sua tabela agora tem 12 bytes. Seu conjunto de dados real precisará de até 200 bytes. Se você fizer SELECT INTO
da sua pequena tabela para fazer uma nova, a posterior INSERT
falhará com um erro de truncamento porque seus campos são muito pequenos.