-
Eles fazem coisas diferentes. UseINSERTquando a tabela existe. UseSELECT INTOquando não.
-
Sim.INSERTsem 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#temptabelas, 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.