SQL Server 批量导入大数据

在以往的一般状况下,一次性向数据库中插入多条数据的方法可能是用循环代码一条一条地插入,这种方法在面临百万、千万级别的数据时显得毫无效率,一般要等待几分钟,甚至几十分钟;好在 MS SQL Server 提供了一个叫作 bulk insert 的方法,有了它就可以更加高效地导入大数据;使用方式并不复杂,用测试表举例:sql

CREATE TABLE test
(
    ID INT IDENTITY(1,1) PRIMARY KEY,
    name VARCHAR(50),
    tel VARCHAR(50)
)

其中主键 ID 为自增标识列,另外两个普通数据字段,而后再准备数据文件:数据库

,henry,18011112222|
,mark,13011112222|
,join,14011112222|
,mary,15011112222|
,george,16011112222|
,henry,18011112222|
,mark,13011112222|
,join,14011112222|
,mary,15011112222|
,george,16011112222|

假设有一个叫作 d:\a.txt 的文件,文件内容如上,把那几行数据复制成更多行以进行大数据测试;而后编写 SQL 代码:测试

BULK INSERT test FROM 'd:\a.txt' WITH(FIELDTERMINATOR=',',ROWTERMINATOR='|')

其中 with 后的标识符 fieldterminator 指字段分隔符,rowterminator 指行分隔符,这里用的是 , 号和 | 号,结合准备好的数据文件能够知道自左边开始的列分别为 ID、name 和 tel,这个数据文件中每一行的第一个 , 号前没有数据,这是由于自增标识列能够在数据文件中被省略,若是后面也省略的话,插入到表中的内容就为 NULL,前提是列能够为 NULL;行分隔符的意思不用多解释,到此执行 SQL 命令就能够向 test 表中插入指定的数据,在个人电脑上插入 10 万条数据仅仅只须要 1 秒钟。大数据

相关文章
相关标签/搜索