SQL SELECT INTO Statement

The SQL SELECT INTO statement can be used to insert the data into tables and first, it creates a new table. Then this SQL SELECT INTO inserts the chosen rows by the Select Statement into that new table.

If we haven’t created the destination table, then the SQL Server Select Into statement can be handy to insert the data into the destination table. If you have an existing table, then use Insert Into Select Statement.

SQL SELECT INTO Syntax

The SQL Server SELECT INTO can be written as:

SELECT [Column Names]
INTO [New_Table]
FROM Source
WHERE Condition --This is optional
  • Columns: It allows us to choose the number of columns to Select from the tables. It may be one or more.
  • New_Table: Please specify the fully qualifies Unique name for SQL Server.
  • Source: One or more tables present in the Database. Use JOINS to join multiple.

From the below screenshot, you can see that We don’t have any Department or Employee table in the tutorials database. Our task is to Select the Data present in that table from the TEST Database and insert it into Tutorials Database using SQL SELECT INTO Statement.

SQL SELECT INTO Statement 1

Data inside the Employee is

Data inside a Employee Table 2

Data inside the Department Table is

Data in Department table 3

SQL SELECT INTO Insert All Columns

Here, we have chosen all the Columns present in the Department and inserted them into the Database.

SELECT [id]
      ,[DepartmentName]
INTO [SQLServer Tutorials].[dbo].[Department]
FROM [SQLTEST].[dbo].[Department]

OR We can use the asterisk (*) as well. But it is not good practice to use an asterisk, so always provide the column names.

SELECT *
INTO [SQLServer Tutorials].[dbo].[Department]
FROM [SQLTEST].[dbo].[Department]

The above query creates a new [Department] and inserts all the records from the source data. The Execution Message:

Messages
-------
(8 rows(s) affected)

Let us see whether the table created with data in the destination database or not

SQL SELECT INTO Statement 5

In this Sql Server Select Into example, We select a few Columns present in the Employee and insert them into Tutorials Database. Here, we restrict the rows as well using the WHERE Clause.

SELECT [FirstName]
      ,[LastName]
      ,[DepartID]
INTO [SQLServer Tutorials].[dbo].[Employee]
FROM [SQLTEST].[dbo].[Employee]
WHERE [DepartID] = 1

Above query creates a new table called [Employee] and insert [FirstName], [LastName] and [DepartID] columns from the source data, where [DepartID] value is equal to 1.

Messages
-------
(4 rows(s) affected)

Let’s see whether the table created with data in the target database or not

SQL SELECT INTO Statement 7

SQL SELECT INTO Insert Data from Multiple Tables

This example uses Columns present in both the Employee and Department. Next, insert them to Tutorials Database.

Here, we are using the INNER JOIN for joining the two tables using id column.

SELECT EMP.[FirstName]
      ,EMP.[LastName]
      ,DEPT.[DepartmentName]
INTO [SQLServer Tutorials].[dbo].[Select Into]
FROM [SQLTEST].[dbo].[Employee] EMP
INNER JOIN
[SQLTEST].[dbo].[Department] DEPT ON
EMP.id = DEPT.id
Messages
-------
(8 rows(s) affected)

Let us see whether the data in destination database is created or not

SQL SELECT INTO Statement 9