The SQL SELECT INTO Statement

The SQL SELECT INTO Statement

The SELECT INTO statement copies data from one table into a new table.

SELECT INTO Syntax

Copy all columns into a new table:

SQL
SELECT *
INTO newtable [IN externaldb]
FROM oldtable
WHERE condition; 

Copy only some columns into a new table:

SQL
SELECT column1, column2, column3, ...
INTO newtable [IN externaldb]
FROM oldtable
WHERE condition; 

The new table will be created with the column-names and types as defined in the old table. You can create new column names using the AS clause.

SQL SELECT INTO Examples

The following SQL statement creates a backup copy of Customers:

SQL
SELECT * INTO CustomersBackup2017
FROM Customers; 

The following SQL statement uses the IN clause to copy the table into a new table in another database:

SQL
SELECT * INTO CustomersBackup2017 IN 'Backup.mdb'
FROM Customers; 

The following SQL statement copies only a few columns into a new table:

SQL
SELECT CustomerName, ContactName INTO CustomersBackup2017
FROM Customers; 

The following SQL statement copies only the German customers into a new table:

SQL
SELECT * INTO CustomersGermany
FROM Customers
WHERE Country = 'Germany'; 

The following SQL statement copies data from more than one table into a new table:

SQL
SELECT Customers.CustomerName, Orders.OrderID
INTO CustomersOrderBackup2017
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
SQL
SELECT * INTO newtable
FROM oldtable
WHERE 1 = 0;