在本教程中,将学习如何使用单个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
语句一次将多行插入表中。