sql server insert into select

Galaxy Glossary

How can I insert data into one table based on data from another table using SQL Server?

The `INSERT INTO SELECT` statement in SQL Server allows you to copy data from one table to another. It's a powerful tool for populating tables with data from existing sources, avoiding manual entry. This is particularly useful for migrating data or creating new tables based on existing ones.
Sign up for the latest in SQL knowledge from the Galaxy Team!
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Description

The `INSERT INTO SELECT` statement is a versatile SQL command used to insert data from one table into another table. It's a crucial technique for data manipulation and migration. Instead of manually entering data, you can efficiently copy data from an existing table, filtering or transforming it as needed. This is especially helpful when you need to populate a new table with data from an existing one, or when you want to add data from a different table based on specific criteria. For example, you might want to create a backup table with only certain records from the original table. This statement is a core part of database management and development, enabling efficient data transfer and manipulation. It's a fundamental skill for any SQL developer.

Why sql server insert into select is important

The `INSERT INTO SELECT` statement is crucial for data migration and manipulation. It streamlines the process of copying data between tables, reducing manual effort and potential errors. This efficiency is vital for maintaining data consistency and accuracy in large databases.

Example Usage

```sql -- Create a sample table CREATE TABLE Customers ( CustomerID INT PRIMARY KEY, FirstName VARCHAR(50), LastName VARCHAR(50), City VARCHAR(50) ); -- Insert some sample data INSERT INTO Customers (CustomerID, FirstName, LastName, City) VALUES (1, 'John', 'Doe', 'New York'), (2, 'Jane', 'Smith', 'Los Angeles'), (3, 'Peter', 'Jones', 'Chicago'); -- Create a new table to copy data into CREATE TABLE CustomersBackup ( CustomerID INT PRIMARY KEY, FirstName VARCHAR(50), LastName VARCHAR(50), City VARCHAR(50) ); -- Insert data from Customers into CustomersBackup, filtering for customers in 'New York' INSERT INTO CustomersBackup (CustomerID, FirstName, LastName, City) SELECT CustomerID, FirstName, LastName, City FROM Customers WHERE City = 'New York'; -- Verify the data in CustomersBackup SELECT * FROM CustomersBackup; ```

Common Mistakes

Want to learn about other SQL terms?