以Bulk insert导入数据
以Bulk insert导入数据
1) employees表为例,(MySQL示例数据库中的表,转入到MSSQL中的为例),超过30w条记录
2) testdb数据库(包含各种测试表结构、数据、函数、存储哦过程的测试数据库)
3) 回顾以 bcp 命令导出、导入数据的过程
4) 以Bulk insert导入数据 (看到有人“强烈建议使用sqlldr命令,20亿条仅仅10分钟搞定”,没有那么多的例子数据,需要测试一下)
在MS SQL查询分析器中执行:
--复制表结构 select * into employeesB from employees where 1<>1 --复制表结构,不复制数据 select * into employeesB from employees where 1=1 --复制表结构,同时复制数据 --drop table employeesB select * from employeesB
在Dos命令提示符下/Power shell提示符下执行:
bcp testdb.dbo.employees out "employees.txt" -T -c --以信任连接导出数据
bcp testdb.dbo.employeesB in "employees.txt" -T -c --以信任连接导入数据
bcp testdb.dbo.employeesB out c:\temp\employees.txt -c -U "sa" -P "password" --使用密码连接
// bcp testdb.dbo.employeesB in "employees.txt" -T -c (导出employees表中的数据时,默认的目录 )
bcp testdb.dbo.employeesB in "c:\temp\employees.txt" -T -c (将导出默认路径下的文件employees.txt,copy到其他平时训练的目录)
--->>> 回顾完毕
-----------------------------------------------------------------------------------------------------------------------------------------------
--复制表结构 select * into employeesB from employees where 1<>1 select * into employeesB from employees where 1=1 --drop table employeesB select * from employeesB sp_help employeesB --delete from employeesB
--->>> 以 buck insert开始导入数据
bulk insert testdb.dbo.employeesB from 'c:\temp\employeesC.csv'