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; |

分类: SQL Server
漫思
浙公网安备 33010602011771号