在SQL数据库中,经常需要向表中批量插入多条数据。这里介绍几种常用的 :
使用单条 INSERT 语句 + 值列表
sql
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...),
(value1, value2, ...),
(value1, value2, ...);
使用多条 INSERT 语句
sql
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
使用 BULK INSERT
sql
BULK INSERT table_name
FROM 'path/to/data.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
使用 INSERT ... SELECT
sql
INSERT INTO table_name (column1, column2, ...)
SELECT column1, column2, ...
FROM other_table;
使用存储过程或函数
sql
CREATE PROCEDURE insert_data
AS
BEGIN
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
END;
EXEC insert_data;
选择合适的
选择合适的 取决于以下因素:
* 数据量
* 表结构
* 数据库系统
* 性能要求
通常,对于少量数据,使用单条 INSERT 语句或多条 INSERT 语句比较方便。对于大量数据,BULK INSERT 或 INSERT ... SELECT 效率更高。存储过程或函数也可以提高性能,但也增加了代码复杂性。