BULK INSERT的作用是:以用户指定的格式复制一个数据文件至数据库表或视图中,可实现快速批量插入数据,显著提高效率
具体语法格式详见:
http://blog.csdn.net/htl258/article/details/4548556
https://docs.microsoft.com/zh-cn/sql/t-sql/statements/bulk-insert-transact-sql
本文以具体实例讲解使用BULK INSERT 将本地文件‘D:\WriteDatafile.txt’中的数据插入到BasicMsg数据表中.
1/首先建立数据表
CREATE TABLE BasicMsg ( RecvTime FLOAT NOT NULL , --接收时间,不存在时间相同的数据 AA INT NOT NULL, --24位地址码 . FlightID Varchar(10) NULL, --航班号 )
2/ 建立存储过程
在存储过程中实现BULK INSERT(也可以不建立存储过程,直接实现)
USE DF17DataPro IF EXISTS (SELECT * FROM SYS.PROCEDURES WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[BulkDataProc]')) DROP PROC [DBO].[BulkDataProc] GO --输出各个范围内NIC值 CREATE PROCEDURE BulkDataProc AS SET NOCOUNT ON BULK INSERT BasicMsg FROM 'D:\WriteDatafile.txt' --location with filename // BasicMsg11 WITH ( -- KEEPIDENTITY , FIELDTERMINATOR = ',', --WriteDatafile.txt文件数据之间的分隔符 ROWTERMINATOR = ' ' --单行数据结束符 ) GO EXECute BulkDataProc
3/WriteDatafile.txt文件内容格式
43255,7867628,CCA1519
4/注意事项
--依次执行上述步骤,即可实现将文件内容插入数据库中;
--当数据表中有自增列属性时,用以上方法会出错;详情见第二篇文章:“SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(2)”