SQL Server 批量导入大数据

Posted 制作小程序网站电脑程序

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 批量导入大数据相关的知识,希望对你有一定的参考价值。

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

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 秒钟。

以上是关于SQL Server 批量导入大数据的主要内容,如果未能解决你的问题,请参考以下文章

Python 批量处理 Excel 数据后,导入 SQL Server

怎样向SQL Server中大批量插入数据

SQL Server批量数据导出导入BCP使用

sql server有批量插入和批量更新的sql语句吗

SQL Server批量数据导出导入Bulk Insert使用

从 MS Access 批量导入并插入 Sql Server [关闭]