Skip to main content

SQL table copies - SELECT INTO VS INSERT INTO


Creating a new table from another table 

see: https://www.w3schools.com/sql/sql_select_into.asp

This creates a new table and inserts all the data from the oldtable 

SELECT * INTO newtable FROM oldtable

You can create a new empty table from the schema of an other using a statement like

SELECT * INTO newtable FROM oldtable WHERE 1 = 0;


Copy data from one table into another existing table 


Insert data from one table into another 

INSERT INTO table2 SELECT * FROM table1


If you need to specify a column list (as is the cast when dealing with identity insert), the syntax is...
  • The tips are:
    • Brackets are required around the destination fields
    • No brackets are required around the select fields, just like a normal select statement 
    • You need the identity_insert flag

SET IDENTITY_INSERT table2 ON; 

INSERT INTO table2 ( col1, col2, col3) SELECT col1, col2, col3 FROM table1

SET IDENTITY_INSERT table2 OFF; 

Comments

Popular posts from this blog