批量处理BCP导入文件到数据库

今天接到个任务,csv文件导入到数据库中。

心想小case,结果一看惊呆了,有上万个数据文件,每个文件中有几万条数据。

效率问题是要考虑的首要因素。

因为之前做过BCP导入,脑海中立马有了思路:循环所有文件,执行BCP命令就可以了吧,决定把它做成个bat批处理。

过程当中遇到的几个问题,mark下:

1. CSV文件中的内容格式(是用,分割还是空格分隔),否则执行BCP导入时候会提示相应的错误

2. 蛋疼的bat语法


场景:

1. 上万个数据文件

2. 导入Sqlserver

3. 同时记录log文件


实现代码:

批量导入数据文件的批处理代码如下:(保存为input.bat)

@echo off
setlocal enabledelayedexpansion		rem 设定变量延迟的效果,为了下面的计数 !sum!
set DestPath=D:\tools\Bcp\csv
set DestExt=*.csv 			rem 模糊检索.csv文件
set /a sum=0
for /f "delims=" %%i  in ('dir /b/a-d/s %DestPath%\%DestExt%')  	rem 循环指定文件夹下的文件,注意dir 后面的参数
do (
echo,					rem 输出空行(效率高)
set /a sum+=1
echo ------------------------------------!sum!------------------------------------
echo %%i
bcp Mydb.dbo.TB_Test in %%i -t "\," -c -S 172.168.1.2 -U sa -P 123456	rem BCP导入数据文件到数据库,一定要主要格式-t -c,符合你的文本格式,否则导入报错
)

pause


把执行的log记录下来,可以另外新建个bat文件,调用上面创建的bat,如下实现:

call input.bat => aa.log
echo "Complete!!!"
pause

结果:

2万多个数据文件,导入了总共2.7亿数据,用时1个小时左右,还是蛮快的


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

summonyyq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值