Insert is a common statement in T-SQL. insert into table (field1, field2 ,...) values (value1, value2 ,...) this form is essential for application development. However, during the development and testing processes, we often encounter situations where table replication is required, such as copying some of the data fields of Table 1 to table 2 or copying the entire table 1 to table 2, in this case, we need to use the select into and insert into select table copy statements.
1. insert into SELECT statement
Statement format: insert into Table2 (field1, field2,...) Select value1, value2,... from Table1
The target table Table2 must exist. Because the target table Table2 already exists, We can insert constants in addition to the fields in the source table Table1. Example:
-- 1. Create a test table
Create Table Table1
(
A varchar (10 ),
B varchar (10 ),
C varchar (10 ),
Constraint [pk_table1] primary key clustered
(
A ASC
)
) On [primary]
Create Table Table2
(
A varchar (10 ),
C varchar (10 ),
D int,
Constraint [pk_table2] primary key clustered
(
A ASC
)
) On [primary]
Go
-- 2. Create Test Data
Insert into Table1 values ('zhao ', 'asds', '90 ')
Insert into Table1 values ('money', 'asds ', '123 ')
Insert into Table1 values ('sun', 'asds ', '80 ')
Insert into Table1 values ('lil', 'asds ', null)
Go
Select * From Table2
-- 3. insert into SELECT statement to copy table data
Insert into Table2 (A, C, D) Select a, c, 5 from Table1
Go
-- 4. display the updated result
Select * From Table2
Go
-- 5. Delete the test table
Drop table Table1
Drop table Table2
2. Select into from statement
Statement format: Select vale1, value2 into Table2 from Table1
The target table 2 does not exist because table 2 is automatically created during insertion and the specified field data in table 1 is copied to table 2. Example:
-- 1. Create a test table
Create Table Table1
(
A varchar (10 ),
B varchar (10 ),
C varchar (10 ),
Constraint [pk_table1] primary key clustered
(
A ASC
)
) On [primary]
Go
-- 2. Create Test Data
Insert into Table1 values ('zhao ', 'asds', '90 ')
Insert into Table1 values ('money', 'asds ', '123 ')
Insert into Table1 values ('sun', 'asds ', '80 ')
Insert into Table1 values ('lil', 'asds ', null)
Go
-- 3. Select into from statement to Create Table 2 and copy data
Select a, c into Table2 from Table1
Go
-- 4. display the updated result
Select * From Table2
Go
-- 5. Delete the test table
Drop table Table1
Drop table Table2