概述

批量导入数据到数据库中,我们有好几种方式。

  1. 从一个数据表里生成数据脚本,到另一个数据库里执行脚本
  2. 从EXCEL里导入数据

上面两种方式,导入的数据都会生成大量的日志。如果批量导入5W条数据到数据表里,就有生成5W条insert日志。那么这有好的方式处理这个问题吗?

下面介绍另一种导入方式,批处理导入。

批处理导入数据

步骤一

准备一个空的数据表Table,将你要导入的数据,全部导入到这个Table里,当然,这个数据表Table和你要导入的表结构是一模一样的。之后新建一个记事本,里面写上如下的批处理命令,保存命名为import.bat

bcp [Test].dbo.Table OUT "d:/test.txt" -c -S 192.168.1.1 -U sa -P 

pause

上面的命令-U -S -T分别是什么意思,见后文。当前,如果你的数据库身份验证是windows,如果写成

bcp [Test].dbo.Table OUT "d:/test.txt" -c -S 192.168.1.1 -T
pause

执行命令后,将得到一个记录得Table所有数据的test.txt文件。

步骤二

新建一个记事本,里面写批处理命令,将所有的数据都导入到指定的数据库表里

bcp "[Test].dbo.Table" in "d:/test.txt" -c -S (local) -U sa -P 

pause

数据库身份验证是windows,写成

bcp "[Test].dbo.Table" in "d:/test.txt" -c -S (local) -T

pause

bcp批处理命名解释

[Test].dbo.Table:数据库表名

d:/test.txt :要导入的数据

-S  server_name\instance_name] ,后面填的是服务器,上面是 (local),当然,填 . 也行

-U login_id,后面指的是服务器登陆用户名

-P password,后面指的是服务器登陆密码

-T 指定 bcp 实用工具通过使用集成安全性的可信连接连接到 SQL Server。不需要网络用户的安全凭据、login_id 和 password。如果不指定 –T,则需要指定 –U 和 –P 才能成功登录

解释完上面之后,接下来解释一下d:/test.txt

这个文本里的数据是有格式的,数据表里有多少个字段,这里面就应该有多少字段,每个字段对应着数据表里的字段,中间用Tab键隔开。例如:

51006    NULL    bbbbbbbbbbbbbbB    2015-12-31 00:00:00.000    0    NULL    1.00000    2    1    2015-02-09 12:08:28.017    jys    2015-02-09 12:08:28.017    jys    0
51007    NULL    aaaaaaaaaaaaaaB    2015-12-31 00:00:00.000    0    NULL    1.00000    2    1    2015-02-09 12:08:28.017    jys    2015-02-09 12:08:28.017    jys    0
51008    NULL    ccccccccccccccB    2015-12-31 00:00:00.000    0    NULL    1.00000    2    1    2015-02-09 12:08:28.017    jys    2015-02-09 12:08:28.017    jys    0

如果第一列是自增ID,你填写的数值无效的,数据库会自动自增。

结果

最后,执行批处理文件命令即可,这样,导入数据生成的日志只有一条。

批量导入数据到mssql数据库的的更多相关文章

  1. 项目总结04:SQL批量导入数据:将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库

    将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库 写在前面:本文用的语言是java:数据库是MySql: 需求:在实际项目中,经常会被客户要求,做批量导入数据:一般的简单的单表数 ...

  2. csv文件批量导入数据到sqlite。

    csv文件批量导入数据到sqlite. 代码: f = web.input(bs_switch = {})  # bs_switch 为from表单file字段的namedata =[i.split( ...

  3. Cassandra使用pycassa批量导入数据

    本周接手了一个Cassandra系统的维护工作,有一项是需要将应用方的数据导入我们维护的Cassandra集群,并且为应用方提供HTTP的方式访问服务.这是我第一次接触KV系统,原来只是走马观花似的看 ...

  4. ADO.NET 对数据操作 以及如何通过C# 事务批量导入数据

    ADO.NET 对数据操作 以及如何通过C# 事务批量导入数据   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...

  5. java使用POI实现Excel批量导入数据

    1.准备工作 1.1 创建模板表头与数据库表字段一一对应,示例如下 1.2将模板放入项目中,如下图所示: 2.前端页面 2.1 使用超链接提供模板下载地址 <html lang="zh ...

  6. neo4j批量导入数据的两种解决方案

    neo4j批量导入数据有两种方法,第一种是使用cypher语法中的LOAD CSV,第二种是使用neo4j自带的工具neo4j-admin import. LOAD CSV 导入的文件必须是csv文件 ...

  7. 使用python向Redis批量导入数据

    1.使用pipeline进行批量导入数据.包含先使用rpush插入数据,然后使用expire改动过期时间 class Redis_Handler(Handler): def connect(self) ...

  8. Redis批量导入数据的方法

    有时候,我们需要给redis库中插入大量的数据,如做性能测试前的准备数据.遇到这种情况时,偶尔可能也会懵逼一下,这里就给大家介绍一个批量导入数据的方法. 先准备一个redis protocol的文件( ...

  9. c# 采用datatable 快速导入数据至MSSQL的方法分享

    转自:http://www.maomao365.com/?p=5613 摘要:下文讲述使用c#代码快速将dataTable导入至mssql数据库的方法 实现思路:需要将datatable调整为同目标表 ...

随机推荐

  1. 原生js(一)

    Element对象有以下重要属性: 1.style. a) Element的css样式 b) 可以通过elem.style.backgroundColor = "red"的形式才动 ...

  2. python中的list和array的不同之处

    原文地址:  http://blog.csdn.net/liyaohhh/article/details/51055147#reply python中的list是python的内置数据类型,list中 ...

  3. php sqlserver及xdebug扩展配置

    ;extension=php_bz2.dllextension=php_curl.dll;extension=php_fileinfo.dll;extension=php_ftp.dll;extens ...

  4. [原]openstack-kilo--issue(三) openstack-nova-issue-systemctl start openstack-nova-compute.service

    本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您赞助的咖啡. execute systemctl start openstack-nova-c ...

  5. javascript 闭包学习

    闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域 ...

  6. 配置Groovy开发环境(Windows)

    1.配置java环境 跳过具体配置 C:\Users\Administrator>java -version java version "1.8.0_45" Java(TM) ...

  7. FAX modem和传真协议简介

    FAX就是传真,传真通信是使用传真机,借助公用通信网或其他通信线路传送图片,文字等信息,并在接收方获得发送原件系统的副本的一种通信方式.传真通信是现代图像通信的重要组成部分,它是目前采用公用电话网传送 ...

  8. IIS7配置伪静态把后缀名映射为html方案

    1.在IIS新建站点.[创建的时候不用去选择版本和模式,默认即可] 2.选中站点,切换到功能试图,找到“处理程序映射",双击之后,在打开窗口右侧的操作栏目下做如下设置: 1)右边" ...

  9. numpy协方差矩阵numpy.cov

    numpy.cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=None)[source] Estim ...

  10. CBV之详解

    一,CBV,基于反射实现根据请求方式不同,执行不同的方法. 1. 开发模式 - 普通开发方式(前后端放在一起写) - 前后端分离 2. 后端开发 为前端提供URL(API/接口的开发) 注:永远返回H ...