bcp命令是SQL

Server提供的一个快捷的数据导入导出工具。使用它不需要启动任何图形管理工具就能以高效的方式导入导出数据。bcp是SQL

Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据。bcp可以将数据库的表或视图直接导出,也能通过SELECT FROM语句对表或视图进行过滤后导出。在导入导出数据时,可以使用默认值或是使用一个格式文件将文件中的数据导入到数据库或将数据库中的数据导出到文件中。

一、bcp的主要参数介绍

bcp共有四个动作可以选择。

1、导入。

这个动作使用in命令完成,后面跟需要导入的文件名。

2、导出。

这个动作使用out命令完成,后面跟需要导出的文件名。

3、使用SQL语句导出。

这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句。

4、导出格式文件。

这个动作使用format命令完成,后而跟格式文件名。

下面介绍一些常用的选项:

-f format_file

format_file表示格式文件名。这个选项依赖于上述的动作,如果使用的是in或out,format_file表示已经存在的格式文件,如果使用的是format则表示是要生成的格式文件。

-x

这个选项要和-f format_file配合使用,以便生成xml格式的格式文件。

-F first_row

指定从被导出表的哪一行导出,或从被导入文件的哪一行导入。

-L last_row

指定被导出表要导到哪一行结束,或从被导入文件导数据时,导到哪一行结束。

-c

使用char类型做为存储类型,没有前缀且以"\t"做为字段分割符,以"\n"做为行分割符。

-w

和-c类似,只是当使用Unicode字符集拷贝数据时使用,且以nchar做为存储类型。

-t field_term

指定字符分割符,默认是"\t"。

-r row_term

指定行分割符,默认是"\n"。

-S server_name[ \instance_name]

指定要连接的SQL Server服务器的实例,如果未指定此选项,bcp连接本机的SQL

Server默认实例。如果要连接某台机器上的默认实例,只需要指定机器名即可。

-U login_id

指定连接SQL Sever的用户名。

-P password

指定连接SQL Server的用户名密码。

-T

指定bcp使用信任连接登录SQL Server。如果未指定-T,必须指定-U和-P。

-k

指定空列使用null值插入,而不是这列的默认值。

二、使用BCP导出数据

1、在Command窗口导出数据

bcp命令可以直接在Command窗口运行,你可以单击开始菜单——运行——cmd——进入Command窗口,然后输入你编写好的bcp语句。

1)导出整个表或视图

--使用可信连接导出整个表

bcp pTest.dbo.transinfo out  c:\test.txt -c

-T

--使用密码连接导出整个表

bcp pTest.dbo.transinfo out  c:\test.txt

-S"(local)" -U"sa" -P"sa" -c

2)使用SQL语句导出表或视图

--使用可信连接导出整个表

bcp “select * from pTest.dbo.transinfo" queryout

c:\test.txt -c -T

--使用密码连接导出整个表

bcp “select * from pTest.dbo.transinfo" queryout

c:\test.txt -S"(local)" -U"sa" -P"sa" -c

2、在查询分析器上导出数据

需要使用master..xp_cmdshell存储过程,需要先检查sqlserver的xp_cmdshell功能是否处于打开状态,可以通过如下命令来查看

exec sp_configure 'show advanced options'

name  minimum

maximum  config_value  run_value

-----------------------------------  -----------  -----------  ----------  -----------

show advanced options  0  1  0  0

如果config_value和

run_value的值为0,表明处于关闭状态(为1时为开启状态)。可以通过下列命令来开启:

exec sp_configure 'show advanced options',1

reconfigure

开启后的状态为:

name  minimum  maximum  config_value

run_value

----------------------------------- ----------- -----------

------------ -----------

show advanced options  0  1  1

1

此时再检查“xp_cmdshell”是否处于开启状态,通过如下命令来查看:

exec sp_configure 'xp_cmdshell'

name  minimum  maximum  config_value

run_value

----------------------------------- ----------- -----------

------------ -----------

xp_cmdshell  0  1

0  0

如果config_value和

run_value的值为0,表明处于关闭状态(为1时为开启状态)。可以通过下列命令来开启:

exec sp_configure 'xp_cmdshell',1

reconfigure

开启后的状态为:

name  minimum  maximum  config_value

run_value

----------------------------------- ----------- -----------

------------ -----------

xp_cmdshell  0  1

1  1

当然你也可以进入sqlserver外围应用配置器——功能的外围应用配置器——选中xp_cmdshell——开启。也可以通过执行sql语句的方式打开xp_cmdshell功能,最后总的开启xp_cmdshell的sql语句为:

use master

exec sp_configure 'show advanced

options',1

reconfigure

exec sp_configure

'xp_cmdshell',1

reconfigure

1)导出整个表或视图

--使用可信连接导出整个表

exec master..xp_cmdshell 'bcp pTest.dbo.transinfo out

c:\test2012-12-14.txt -c -T'

--使用密码连接导出整个表

exec master..xp_cmdshell 'bcp pTest.dbo.transinfo out

c:\test.txt -S"(local)" -U"sa" -P"sa" -c'

2)使用SQL语句导出表或视图

--使用可信连接导出整个表

exec master..xp_cmdshell 'bcp "select * from

pTest.dbo.transinfo" queryout  c:\test.txt -c

-T'

--使用密码连接导出整个表

exec master..xp_cmdshell 'bcp "select * from

pTest.dbo.transinfo" queryout  c:\test.txt

-S"(local)" -U"sa" -P"sa" -c'

3)对表数据进行过滤导出

bcp不仅可以接受表名或视图名做为参数,也可以接受SQL做为参数。通过SQL语句可以对要导出的表进行过滤,然后导出过滤后的记录。

exec master..xp_cmdshell 'bcp "select top 2* from

pTest.dbo.transinfo" queryout  c:\test.txt

-S"(local)" -U"sa" -P"sa" -c'

bcp还可以通过简单地设置选项对导出的行进行限制。

exec master..xp_cmdshell 'bcp "select * from

pTest.dbo.transinfo" queryout  c:\test.txt -F2 -L4

-S"(local)" -U"sa" -P"sa" -c'

表示从表所查询出来的结果中,取第2条到第4条数据进行导出。

4)使用BCP导出格式文件

bcp还可以通过-x选项生成xml格式的格式文件。xml格式文件所描述的内容和普通格式文件所描述的内容完全一样,只是格式不同。

exec master..xp_cmdshell 'bcp pTest.dbo.transinfo

format null -f c:\test.xml -x -c -T'

三、使用BCP导入数据

bcp可以通过in命令将上面所导出的test.txt再重新导入到数据库中和表transinfo的结构完全一样的表中。如果要导入的表没有主键约束时,也可以将数据直接导入到源表中。

--创建和transinfo结构相同的表transinfo1

select top 0 * into transinfo1 from transinfo

--将数据导入到transinfo1 表中

exec master..xp_cmdshell 'bcp pTest.dbo.transinfo1

in c:\test.txt  -c -T'

--导入数据也同样可以使用-F和-L选项来选择导入数据的记录行。

exec master..xp_cmdshell 'bcp pTest.dbo.transinfo1

in c:\test.txt -F2 -L4  -c

-T'

在导入数据时可以根据已经存在的格式文件将满足条件的记录导入到数据库中,不满足则不导入。如上述的格式文件中的第三个字段的字符长度是24,如果某个文本文件中的相应字段的长度超过24,则这条记录将不被导入到数据库中,其它满足条件的记录正常导入。

本文参考资料:http://chenjie.blog.51cto.com/24029/7195/

http://www.cnblogs.com/RascallySnake/archive/2010/11/17/1880287.html

mysql navicat导入bcp_SQL Server中BCP导入导出用法详解相关推荐

  1. 给mysql 授权 命令_mysql中授权命令grant用法详解:

    mysql中授权命令grant用法详解: mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为: gra ...

  2. MySQL中ESCAPE关键字的用法详解

    MySQL中ESCAPE关键字的用法详解 MySQL中ESCAPE关键字的用法详解 1. mysql转义概述 2. escape验证 MySQL中ESCAPE关键字的用法详解 1. mysql转义概述 ...

  3. mysql escape关键字_MySQL中ESCAPE关键字的用法详解

    MySQL转义 转义即表示转义字符原来的语义,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义. MySQL中,转义字符以"\" ...

  4. Oracle中游标Cursor基本用法详解

    这篇文章主要介绍了Oracle中游标Cursor基本用法详解,还是比较全面的,具有一定参考价值,需要的朋友可以了解下. 查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT ...

  5. escape mysql_MySQL中ESCAPE关键字的用法详解

    MySQL转义 转义即表示转义字符原来的语义,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义. MySQL中,转义字符以"" ...

  6. el表达式ne什么意思_JSP中EL表达式的用法详解(必看篇)

    EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${ ...

  7. csh for循环_shell中的for循环用法详解_linux shell

    这篇文章主要介绍了shell中的for循环用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 for 命令: for i i ...

  8. conv2d的输入_pytorch1.0中torch.nn.Conv2d用法详解

    Conv2d的简单使用 torch 包 nn 中 Conv2d 的用法与 tensorflow 中类似,但不完全一样. 在 torch 中,Conv2d 有几个基本的参数,分别是 in_channel ...

  9. python中如何反解函数_PyTorch中反卷积的用法详解

    pytorch中的 2D 卷积层 和 2D 反卷积层 函数分别如下: class torch.nn.Conv2d(in_channels, out_channels, kernel_size, str ...

最新文章

  1. 【HDU1495非常可乐】【POJ3414Pots】
  2. Solr相似度算法一:Lucene TF-IDF 相关性算分公式
  3. 一个黑魔法,竟能让Python支持方法重载
  4. 蓝桥杯练习(java):字符串对比
  5. 【Linux】一步一步学Linux——cut命令(44)
  6. 速来围观!leetcode java实现汇总
  7. react Native 环境安装配置——图解版一目了然
  8. Redis常见问题及其一些重点知识总结
  9. Android开发人员的10大抱怨
  10. 吴昊品游戏核心算法 Round 5 —— (转载)十四步实现拥有强大AI的五子棋游戏...
  11. 软件测试学习视频 分享
  12. prince2 成功的项目管理_PRINCE2项目管理方法论
  13. 软考嵌入式中级经验分享+真题教材
  14. python推箱子小游戏_python实现推箱子游戏
  15. 阿里腾讯裁员30%,互联网大厂此举预示着什么?
  16. Simulink代码生成:通过Legacy Code Tool集成C函数
  17. Matlab中axis函数使用
  18. Navicat导入连接
  19. ourplay插件_ourplay64位辅助包
  20. torch.nn.functional.cosine_similarity使用详解

热门文章

  1. SpringBoot (四) :SpringBoot整合使用JdbcTemplate
  2. CUDA error: device-side assert triggered Assertion t 」= 0 t n classes failed
  3. pycharm设置编写的脚本页面长行实现自动换行(windows版)
  4. PyTorch 高级实战教程:基于 BI-LSTM CRF 实现命名实体识别和中文分词
  5. LeetCode简单题之数组拆分 I
  6. pytorch生成对抗示例
  7. Json文件解析(下
  8. 深度学习-智能视频监控
  9. Mobileye_EyeQ4功能和性能
  10. 2021年大数据常用语言Scala(十三):基础语法学习 函数 重点掌握