20.2 SQL Server批量插入(BULK INSERT)
SQL Server批量插入(BULK INSERT)
简介
BULK INSERT
可以将数据文件导入SQL Server中的表或视图。语法:
BULK INSERT table_name
FROM path_to_file
WITH options;
更多细节请参考BULK INSERT
示例
使用BULK INSERT
语句将数据从逗号分隔值(CSV)文件加载到表中为例。
创建数据库HR:
CREATE DATABASE HR;
然后在HR中创建表Employee:
USE HR;
CREATE TABLE Employees (
Id int IDENTITY PRIMARY KEY,
FirstName varchar(50) NOT NULL,
LastName varchar(50) NOT NULL
);
然后,准备一个CSV文件,路径为D:\data\employees.csv
,包含以下内容:
Id,First name,Last name
1,John,Doe
2,Jane,Doe
3,Lily,Bush
employees.csv
文件有四行。第一行包含文件标题,最后三行包含实际数据。实际上,数据文件通常包含大量行。
之后,从employees.csv
文件加载数据并添加到Employees
表中:
BULK INSERT Employees
FROM 'D:\data\employees.csv'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 2
);
其中:
表名是Employees
,如果连接的是master
数据库,则需要指定全名HR.dbo.Employees
。
WITH
子句有三个选项:FIELDTERINATOR
为逗号(','
),它是列之间的分隔符。
ROWTERMINATOR
为换行符('\n'
)。
第一行(FIRSTROW
)数据从2开始,而不是1,因为我们不会将标题加载到Employees
表中。
最后验证一下导入数据:
SELECT * FROM Employees;