BCP的基础用法可以参考上一篇:http://www.cnblogs.com/Gin-23333/p/5489889.html

这篇是补充一些有可能会用到,但是出场几率并不算大的几个参数

1、首先是 -F -L ,形象生动的来说就是 FirstRow 和LastRow 的参数,比如以下例子(测试的表用回之前那个)

ID          name                                               Chinese     Math
----------- -------------------------------------------------- ----------- -----------
1 张三 90 80
2 李四 75 90
3 王五 68 100
4 赵六 100 NULL
5 うずまき ナルト 59 80

然后配合这个测试语句导出\导入数据

exec sys.xp_cmdshell 'bcp test.dbo.t3 out D:\t3 -S GINLATOP\MSSQLSERVER2016 -T -c'
exec sys.xp_cmdshell 'bcp test.dbo.t4 in D:\t3 -S GINLATOP\MSSQLSERVER2016 -T -c -F 2 -L 4' select * from t4
ID name Chinese Math
----------- -------------------------------------------------- ----------- -----------
1 李四 75 90
2 王五 68 100
3 赵六 100 -1

对比原来t3的数据,先不要对正 ID列,看下数据行数,-F 和 -L 的参数意义是从第几行还是,截至到第几行,和平时类似使用的 offset next 和 limit 1,1 这些不一样。这个在导数据的时候需要注意一下。

2、关于标识列的去留。对于上面一个例子,虽然导出的数据是存在ID列的,但是导入的时候却跟原本的ID列的值不一致。在BCP里面也是可以处理,使用-E 参数来进行控制

exec sys.xp_cmdshell 'bcp test.dbo.t3 out D:\t3 -S GINLATOP\MSSQLSERVER2016 -T -c'
exec sys.xp_cmdshell 'bcp test.dbo.t4 in D:\t3 -S GINLATOP\MSSQLSERVER2016 -T -c -E -F 2 -L 4' select * from t4 ID name Chinese Math
----------- -------------------------------------------------- ----------- -----------
2 李四 75 90
3 王五 68 100
4 赵六 100 -1

如上面例子所显示,原本t3的标识列已经带到t4里面。

3、处理默认值的用法,导出/导入数据的时候,导入到新表的时候,如果对应的值为null,那么如果导入的对应列存在默认值,则会插入默认值。如果要保持Null 值则可以用-k 的参数

修改一下表对象,往里面的Math 字段添加一个默认值
alter table t4 add constraint DF_t4_Math default -1 for Math
--保留数据Null值不填充默认值
exec sys.xp_cmdshell 'bcp test.dbo.t4 in D:\t3 -S GINLATOP\MSSQLSERVER2016 -T -c '
exec sys.xp_cmdshell 'bcp test.dbo.t4 in D:\t3 -S GINLATOP\MSSQLSERVER2016 -T -c '
ID name Chinese Math
----------- -------------------------------------------------- ----------- -----------
1 张三 90 80
2 李四 75 90
3 王五 68 100
4 赵六 100 -1
5 うずまき ナルト 59 80 exec sys.xp_cmdshell 'bcp test.dbo.t4 in D:\t3 -S GINLATOP\MSSQLSERVER2016 -T -c -k'
ID name Chinese Math
----------- -------------------------------------------------- ----------- -----------
1 张三 90 80
2 李四 75 90
3 王五 68 100
4 赵六 100 NULL
5 うずまき ナルト 59 80

虽然说可以指定是否保留导入数据的Null值,但是要说明一点,如果存在多列有默认值的列,目前的版本在导入的时候要么选择全部取默认值,要么全部保留Null值,不能A列使用默认值而B列保留空,这个需要留意一下

4、BatchSize 这个也挺好用。 -b 参数,相当于每次导出/导入多少条数据。这样的好处是当数据量很大的时候,假如途中出错,在出错的前面批次的数据都可以正常导入,将不会影响之前导入的数据。

--每个批次传入的数据行数
exec sys.xp_cmdshell 'bcp test.dbo.t4 in D:\t3 -S GINLATOP\MSSQLSERVER2016 -T -c -b 1'
exec sys.xp_cmdshell 'bcp test.dbo.t4 in D:\t3 -S GINLATOP\MSSQLSERVER2016 -T -c -b 1' output
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NULL
开始复制...
已向 SQL Server 发送了 1 行。总共发送了: 1
已向 SQL Server 发送了 1 行。总共发送了: 2
已向 SQL Server 发送了 1 行。总共发送了: 3
已向 SQL Server 发送了 1 行。总共发送了: 4
已向 SQL Server 发送了 1 行。总共发送了: 5
NULL
已复制 5 行。
网络数据包大小(字节): 4096
总时钟时间(毫秒) : 1 平均值: (每秒 5000.00 行。)
NULL

5条数据分开了5次进行发送,这个就是-b 的作用。

BCP笔记整理(二)的更多相关文章

  1. Deep Learning(深度学习)学习笔记整理(二)

    本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...

  2. Struts2学习笔记整理(二)

    这里是重点. Action接口 struts2 的Action可以是POJO 为了让用户开发的Action更加规范struts2提供了一个Action接口 ActionSupport基类 Struts ...

  3. HTML+CSS学习笔记整理二

    盒子模型CSS(重点) 边框border     边框通常使用连写border:1px(边框大小) solid(实线或其他)  red(颜色) border-collapse:collapse (合并 ...

  4. Deep Learning(深度学习)学习笔记整理系列之(二)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  5. 一篇笔记整理JVM工作原理

    首先要了解的 >>数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了 ...

  6. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  7. 关于ARP欺骗与MITM(中间人攻击)的一些笔记( 二 )

    一直没有折腾啥东西,直到最近kali Linux发布,才回想起应该更新博客了….. 再次说明,这些技术并不是本人原创的,而是以前记录在Evernote的旧内容(排版不是很好,请谅解),本文是继关于AR ...

  8. Deep Learning(深度学习)学习笔记整理系列之(八)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  9. Deep Learning(深度学习)学习笔记整理系列之(七)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

随机推荐

  1. C#运用GmaQrCode生成二维码

    项目中需要生成二维码,方法比较多,可以采用JS插件,也可以采用第三方插件后台生成二维码,在后台方法中可以采用QRCode或者GmaQrCode,现在介绍一种C#在后台生成二维码的方法: /// < ...

  2. Oracle数据库的SQL分页模板

    在系统开发过程中,需要对数据进行查询,大部分情况下从数据库中查询的数据量比较大,在系统页面无法全部显示,而且查询全部的数据会影响系统的反应速度,需要对所查询的数据进行分页的查询操作,以此减轻系统的压力 ...

  3. ztree + ashx +DataTable +Oracle

    问题描述 好久没有使用ztree了,刚才在使用ztree做导航时遇到了几个小问题: 1.返回数据源是undefined . 2.数据出现后树结构没有出现(pIdKey单词拼写错误). 3.在使用Ora ...

  4. AnagularJs之directive

    前言: 昨日周六,再登梧桐山.六点半,起.未到顶,雨纷飞.冒雨行,终封顶,只为合照一张.五点半,下山行.聆听大自然的律动,双腿随其自然而颤抖!今早起,我的双腿犹如叛逆期的少年,或如领家的孩童,遂决定今 ...

  5. Compensating Transaction Pattern(事务修正模式)

    Undo the work performed by a series of steps, which together define an eventually consistent operati ...

  6. JS的解析与执行过程

    JS的解析与执行过程 全局中的解析和执行过程 预处理:创建一个词法环境(LexicalEnvironment,在后面简写为LE),扫描JS中的用声明的方式声明的函数,用var定义的变量并将它们加到预处 ...

  7. WPF透明设置(Opacity)

    <TextBlock Text="阴影效果" FontSize="32"></TextBlock> <Border Height= ...

  8. 轻量级ORM

    不知道可能称的上是ORM,其实就是一个DBHelper.看到网上不少人写自己的ORM,但我觉得都不太好. 我这个ORM,学习成本非常低,常用的方法仅有几个,在使用的过程中,你不需要有太多要注意的地方, ...

  9. .NET正则表达式基础入门(一)

    字符组 正则表达式的字符组十分简单,就是列出你所想要匹配的字符.阅读本章前,建议先下载我于CSDN上传的示例代码,下载无需分数,下载链接. 1.普通字符组 普通字符组,列出所有你需要匹配的字符. 例如 ...

  10. html5跟随鼠标炫酷网站引导页动画特效

    html5跟随鼠标炫酷网站引导页动画特效一款非常不错的引导页,文字效果渐变,鼠标跟随出绚丽的条纹.html5炫酷网站引导页,鼠标跟随出特效. 体验效果:http://hovertree.com/tex ...