sql server 通过insert into 与select (有数据为常量)组合进行批量插入

一般的sql 插入语句:

insert into 表名 (列1, 列2....) 
values 
(列1值, 列2值...)
(列1值, 列2值...)
(列1值, 列2值...)
(列1值, 列2值...)

但是这种的值valuse是我们手写死了的。有时候字段的值可能是另一张表中的数据。这种情况就需要与select 来进行搭配使用

INSERT INTO 目标表 (列1, 列2, 列3, ...)
SELECT 列1, 列2, 列3, ...
FROM 源表
WHERE 条件;

事例:

CREATE TABLE Customers (
    ID INT PRIMARY KEY AUTO_INCREMENT,
    Name VARCHAR(50),
    Address VARCHAR(50)
);
INSERT INTO Customers (Name, Address)
VALUES ('张三', '北京'), ('李四', '上海'), ('王五', '广州');
CREATE TABLE Orders (
    ID INT PRIMARY KEY AUTO_INCREMENT,
    CustomerName VARCHAR(50),
    Amount DECIMAL(10, 2)
);
INSERT INTO Orders (CustomerName, Amount)
VALUES ('张三', 100.00), ('李四', 200.00), ('王五', 300.00);
  • 不过当我们有时候要写入的字段是一个常亮的时候,我们可以通过 as 来指定列

  • INSERT INTO Customers (Name, Address, OrderStatus)
    SELECT CustomerName, Address, '已完成' AS OrderStatus
    FROM Orders
    WHERE Amount > 150.00;