SQL Server 'select * into' versus 'insert into ..select *

The select * into table1 from table2 where 1=1 creates table1 and inserts the values of table2 in them. So, if the table is already created that statement would give an error.

The insert into table1 select * from table2 only inserts the values of table2 in table1.


The first one (SELECT INTO) will create and populate a new table the second (INSERT... SELECT) inserts to an existing table.

In versions of SQL Server prior to 2008 the first one could be minimally logged and the second one not but this is no longer true.