📜  在 MS SQL Server 中插入 Select 语句(1)

📅  最后修改于: 2023-12-03 14:51:02.582000             🧑  作者: Mango

在 MS SQL Server 中插入 Select 语句

在 MS SQL Server 数据库中,我们可以使用 INSERT INTO SELECT 语句来将一个表中的数据插入另一个表中。该语句结合了 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 * 来选择所有列。