bcp命令导入大量数据到sql server

本文讲述了如何使用bcp命令来解决将300w条客户ID从Excel导入到SQL Server的问题。由于Excel的限制,作者尝试了多种方法,包括通过Excel的多个sheet和SQL语句直接导入,但都遇到问题。最终,作者发现并使用bcp命令,配合txt文件,成功高效地完成了数据导入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司进行年终总结,需要对300w客户进行追踪,但是这300w客户的id导入数据库中让我小小纠结了一下。


因为需求部门提给我的是excel的数据格式,所以第一反应是用excel导入,但是sql server2005只支持office 2003的格式,所以只能用xls导入,但是xls一张表只能支持65535条数据,相对于300w条数据来说,需要操作将近50次,太麻烦了。


后来发现一个excel可以导入多个sheet,于是又在一个excel中加入了10个sheet,结果不仅导入过程变慢了,而且多个sheet无法导入一个表中(也许我操作有误,没有继续研究了)。


后来发现用sql语句直接导入:

select * into t# FROM openrowset( 'Microsoft.Jet.OLEDB.4.0', 'EXCEL 5.0;HDR=YES;IMEX=1; DATABASE=d:\kq\salary.xls',Sheet1$)


后来研究了半天,怎么运行都报错,估摸着是我那台电脑上没有装office,但是奇怪的是sql server直接导入就能导入,这样却不行。


最后找啊找,终于找到了bcp命令,而且发现可以用txt的方式导入,发现当时自己真的是脑子一根筋,不知道换个模式,死命去找怎么用excel导入,囧。

在sql server中执行:

EXEC master..xp_cmdshell \'bcp S_HGAD_DBS.dbo.AD_DATA_TAB in d:\test.txt -T -c'



bcp命令简单说明:

bcp 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值