SQL Server插入多行记录

在本教程中,将学习如何使用单个SQL Server INSERT语句将多行插入表中。在上一个教程中,已经学习了如何使用INSERT语句一次向表中添加(插入)一行记录。
要一次向表中添加多行,请使用以下形式的INSERT语句:

INSERT INTO table_name (column_list)
VALUES
    (value_list_1),
    (value_list_2),
    ...
    (value_list_n);

在此语法中,不使用单个值列表,而是使用多个以逗号分隔的值列表进行插入。

使用此形式的INSERT语句,一次可以插入的行数为1000行。 如果要插入更多行,则应考虑使用多个INSERT语句,BULK INSERT或派生表。

请注意,此INSERT多行语法仅在SQL Server 2008或更高版本中受支持。

SQL Server Insert多行示例

我们将使用上一个教程中创建的promotions表进行演示。如果尚未创建promotions表,则可以使用以下CREATE TABLE语句:

CREATE TABLE sales.promotions (
    promotion_id INT PRIMARY KEY IDENTITY (1, 1),
    promotion_name VARCHAR (255) NOT NULL,
    discount NUMERIC (3, 2) DEFAULT 0,
    start_date DATE NOT NULL,
    expired_date DATE NOT NULL
);

以下语句将多个行添加到promotions表:

-- 先删除表中的所有记录
DELETE  FROM sales.promotions;

-- 开始插入
INSERT INTO sales.promotions (
    promotion_name,
    discount,
    start_date,
    expired_date
)
VALUES
    (
        '2020夏季促销',
        0.15,
        '20200601',
        '20200901'
    ),
    (
        '2020秋季促销',
        0.20,
        '20201001',
        '20201101'
    ),
    (
        '2020冬季促销',
        0.25,
        '20201201',
        '20210101'
    );

执行上面插入语句,SQL Server发出以下消息,指示已成功插入三行 -

(3 rows affected)

通过执行以下查询来验证插入数据:

在本教程中,学习了如何使用另一种形式的SQL Server INSERT语句,使用一个INSERT语句一次将多行插入表中。


上一篇: SQL Server修改数据 下一篇: SQL Server数据查询