📅  最后修改于: 2023-12-03 14:51:02.582000             🧑  作者: Mango
在 MS SQL Server 数据库中,我们可以使用 INSERT INTO SELECT 语句来将一个表中的数据插入另一个表中。该语句结合了 INSERT INTO 和 SELECT 语句,从而使得我们可以方便地将一个表的数据复制到另一个表中。
以下是 INSERT INTO SELECT 语法的基本形式:
INSERT INTO table_name (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table_name
WHERE condition;
其中,table_name 是要插入数据的目标表,column1、column2、column3 等是目标表的列名,SELECT 语句中的 column1、column2、column3 等是源表中要插入数据的列名,FROM 语句指定源表,WHERE 语句可选,用于指定筛选条件。
如果目标表和源表的列名和数据类型一致,则可以省略列名:
INSERT INTO table_name
SELECT * FROM source_table;
下面是一个示例,假设我们有两个表,Students 和 NewStudents,它们的结构如下:
CREATE TABLE Students (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
gender VARCHAR(10)
);
CREATE TABLE NewStudents (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
gender VARCHAR(10)
);
我们要将 Students 表的数据复制到 NewStudents 表中,可以使用以下 SQL 语句:
INSERT INTO NewStudents (id, name, age, gender)
SELECT id, name, age, gender FROM Students;
执行后,将会将 Students 表中的所有数据复制到 NewStudents 表中。
通过 INSERT INTO SELECT 语句,我们可以方便地将一个表的数据复制到另一个表中。当两个表的结构一致时,可以省略列名,直接通过 SELECT * 来选择所有列。