今天在向数据库里面导入数据时,发现cvs文件竟然有180M,用sqlserver自带的导入工具导了十几分钟,大概导入了百分之二,而且会出现很多数据类型不匹配(还不知道什么原因,后面把所有类型的长度都加长了),于是放弃了sqlserver自带的导入工具。
之后在网上找到sqlserver自带的函数bulk,用这个函数一共插入了近2000万行数据,耗时328秒,还是比较快的
如果有比这更快的方法,可以评论留言告诉大家
bulk insert database_name.datatable_name
from 'file_path' --文件的磁盘路径,或者远程路径
with(
FIELDTERMINATOR=',', --列的分隔符
ROWTERMINATOR='0x0a' ,--行分隔符
FIRSTROW=2 --有效数据从哪行开始
) ;
这篇文章介绍了其他参数的含义:http://blog.youkuaiyun.com/jackmacro/article/details/5959321
这是官方文档https://docs.microsoft.com/en-us/sql/t-sql/statements/bulk-insert-transact-sql