之前2篇日志整理了BCP大致的用法,这次整理一下它的兄弟 Bulk Insert 的写法以及和bcp那边的结合的用法。

首先,Bulk Insert 语句要在连接了Sql Server 服务器之后才执行的,和bcp 不一样,bcp 是以命令来执行,而Bulk Insert 相当于一个执行一个操作语句

然后这里列举一下Bulk Insert 的用法,和对应bcp 的参数的对应关系。

bulk insert t4
from 'D:\t3.txt'
with(
DataFileType = 'char' -- DataFileType选项支持 char|native|widechar|widenative 相对应的bcp接口就是 -c|-n|-w|-N
,BatchSize = 1 --BatchSize 相当于bcp里面的 -b 选项,每次交互多少行数据
,FieldTerminator = ' ' --FieldTerminator 相当于bcp 里面的-t选项,标识同一行数据里面的列分割
,RowTerminator = '\r\n' --RowTerminator 相当于bcp里面的 -r 选项,标识不同行数据里面的行分割
,ForMatFile = 'D:\format.xml' --FormatFile 相当于bcp 里面的 -f 选项,使用配置文件进行批量导入数据,将适用以下情况
--(1、文件的列比表的列多 2、列顺序和数据库列顺序不一致 )
,KeepIdentity --KeepIdentity 相当于bcp 里面的 -E 选项,表示保留导入数据的标识列的数据
,KeepNulls --KeepNulls 相当于 bcp 里面的 -k选项,保留导入数据的Null值,不转换成列的默认值
,FirstRow = 2 --FirstRow 相当于 bcp 里面的 -F 选项,表示开始导入的首行
,LastRow = 4 --LastRow 相当于 bcp 里面的 -L 选项,表示导入的尾行
,Check_Constraints --是否检查表中约束,如果没有该选项,那么忽略
,codePage = '850' --相当于bcp 里面的-C 选项
)

如果之前用过bcp 这个应该也没有什么大的问题。

以上with 之后的所有选项其实都可以不填的,如果要填的话,可以参考官网或者我后面的注释。

其中一个比较注意的是formatfile 这个选项,如果导入的文件和目标的表的列顺序或者列数不一致的时候,那么就需要使用formatflie 来告诉数据库数据怎么摆位,如果是想省点事可以先使用bcp 来生成一个格式化文件先,无论是非xm文件还是xml文件都可以支持。生成之后修改对应的项即可。

另外,bcp 里面是没有Check_Constraints 这个选项的,但是BulkInsert 这里可以支持,使用这个选项也可以更好地保证导入数据的数据完整性。

其他的参数和选项,都和bcp里面找到对应的方法,应用也类似。这里也没必要再次重复了~

本次分享到这里

笔记整理之 Bulk Insert的更多相关文章

  1. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  2. .NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1)

    原文:.NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1) 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数 ...

  3. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

  4. java 笔记整理

    在19寒假对java基础进行自学,总结的笔记整理出来 ==================================================== 排序查找 冒泡排序法1.一共会比较数组元 ...

  5. 【mysql学习笔记整理】

    /*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作#创建#数据库的创建USE mysql;CREATE DATABASE db_x;#删除#删除数据库DROP DATABASE ...

  6. 最全mysql笔记整理

    mysql笔记整理 作者:python技术人 博客:https://www.cnblogs.com/lpdeboke Windows服务 -- 启动MySQL net start mysql -- 创 ...

  7. Bulk Insert:将文本数据(csv和txt)导入到数据库中

    将文本数据导入到数据库中的方法有很多,将文本格式(csv和txt)导入到SQL Server中,bulk insert是最简单的实现方法 1,bulk insert命令,经过简化如下 BULK INS ...

  8. SQL Server Bulk Insert批量数据导入

    SQL Server的Bulk Insert语句可以将本地或远程的数据文件批量导入到数据库中,速度非常的快.远程文件必须共享才行,文件路径须使用通用约定(UNC)名称,即"\\服务器名或IP ...

  9. 从0开始学Swift笔记整理(五)

    这是跟在上一篇博文后续内容: --Core Foundation框架 Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Sw ...

随机推荐

  1. struts2学习笔记--线程安全问题小结

    在说struts2的线程安全之前,先说一下,什么是线程安全?这是一个网友讲的, 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码.如果每次运行结果和单线程运行的结果是一样 ...

  2. Myeclipse无法开启Servers视图解决办法

    IDE报错如下:  解决办法:1.首先关闭MyEclipse工作空间. 2.然后删除工作空间下的 “/.metadata/.plugins/org.eclipse.core.runtime/.sett ...

  3. ASP.NET实现微信功能(1)(创建菜单,验证,给菜单添加事件)

    LZ实在 不知道怎么起名字了,索性就取了这个名字,开始吧,说实在的,想给自己的平常的学习做一个总结,总是忘了总结.也只能给工作做一个总结了. 我打算用2篇文章来写,第一篇是关于订阅号的,就是这个号,另 ...

  4. Easyui datagrid editor为combobox时指定数据源

    当在datagrid行内部应用添加编辑操作时,引入combobox是非常方便的操作,我在引入combobox时对数据源这快做个总结,在做demo的过程中遇到个问题,就是当你选择了下拉框的值后点击保存, ...

  5. 【JUC】JDK1.8源码分析之CopyOnWriteArrayList(六)

    一.前言 由于Deque与Queue有很大的相似性,Deque为双端队列,队列头部和尾部都可以进行入队列和出队列的操作,所以不再介绍Deque,感兴趣的读者可以自行阅读源码,相信偶了Queue源码的分 ...

  6. jQuery-1.9.1源码分析系列(十) 事件系统——事件包装

    首先需要明白,浏览器的原生事件是只读的,限制了jQuery对他的操作.举个简单的例子就能明白为什么jQuery非要构造一个新的事件对象. 在委托处理中,a节点委托b节点在a被click的时候执行fn函 ...

  7. Java进击C#——语法之ADO.NET

    本章简言 上一章讲到关于C#语法的基础部分.了解相关的基础部分之后我们就要去了解一下C#是什么样子访问数库的.C#把访问数据库这一部分的知识点叫作ADO.NET.即是JAVA常常讲到的JDBC这一部分 ...

  8. 史上最全的Ajax基础详解

    同步请求和异步请求 先解释一下同步和异步的概念: 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯 ...

  9. CSS垂直居中和水平居中

    前言 CSS居中一直是一个比较敏感的话题,为了以后开发的方便,楼主觉得确实需要总结一下了,总的来说,居中问题分为垂直居中和水平居中,实际上水平居中是很简单的,但垂直居中的方式和方法就千奇百怪了. 内联 ...

  10. PHP 检测机器人,屏蔽内页

    PHP 检测机器人,屏蔽内页 <?php // SpiderHelper::rewrite301(); // SpiderHelper::showRobotTxt(); class Spider ...