当前位置:  数据库>sqlserver

bcp+Sql语句抽取数据并导出的方法

    来源: 互联网  发布时间:2014-08-29

    本文导语:  本节内容: bcp+Sql语句抽取数据并导出 需求描述: 要将项目数据库中的数据按照一定的规则抽取出来,然后再导入到另外一个结构相同的数据库中; 之前也使用过bcp的功能,但是只使用bcp将整个表的数据导入到一个csv文件中...

本节内容:
bcp+Sql语句抽取数据并导出

需求描述:
要将项目数据库中的数据按照一定的规则抽取出来,然后再导入到另外一个结构相同的数据库中;
之前也使用过bcp的功能,但是只使用bcp将整个表的数据导入到一个csv文件中,查看了一下bcp命令的参数,发现bcp命令后面可以加sql语句,然后带上-queryout参数,就可以按照自己的逻辑将数据抽取出来,然后导入到csv文件中了。

具体操作方法:

1,bcp命令可以直接在Command窗口运行,你可以单击开始菜单-运行-cmd-进入Command窗口,然后输入你编写好的bcp语句
2,可以调用系统存储过程master..xp_cmdshell来调用bcp命令
3,如果需要使用master..xp_cmdshell存储过程,需要先打开sqlserver的xp_cmdshell功能,可以进入sqlserver外围配置管理器-功能配置管理器-选中xp_cmdshell-开启。
也可以通过执行sql语句的方式打开xp_cmdshell功能,如下:
 

代码示例:
USE master
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'xp_cmdshell', 1     --1,开启;0,关闭
RECONFIGURE WITH OVERRIDE
 

4,调用master..xp_cmdshell调用bcp时,整个bcp命令要放在单引号内作为master..xp_cmdshell存储过程的参数,如:
 

代码示例:
exec master..xp_cmdshell 'bcp sql语句 -queryout d:test.csv -Usa -Ppassword -S127.0.0.1 -c '

5,sql语句中涉及的表名,必须用数据库.拥有者.表名的格式,如SchoolDataBase.dbo.School
6,sql语句需要放在双引号内,而在实际应用时,单引号和双引号太多,而且嵌套,还是需要变化一下,采用字符串连接的方式,如:
 

代码示例:
 "exec master..xp_cmdshell 'bcp ""+sql语句+""  -queryout d:test.csv -Usa -Ppassword -S127.0.0.1 -c'"

7,sql语句不可以有回车换行符,这个是折腾我半天时间才发现的,没办法,只能再曲线救国,于是出现了如下的sql语句:
 

代码示例:
"exec master..xp_cmdshell 'bcp ""+sql语句.Replace("rn"," ")+""  -queryout -Usa -Ppassword -S127.0.0.1 -c'"

将上面语句作为一条sql语句放在sqlCommand中执行即可,接下能够抽取数据导出了。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • SQL Server利用bcp命令把SQL语句结果生成文本文件
  • 执行bcp命令
  • UNIX下面能否使用类似BCP的程序连接另一台UNIX下面的Sybase数据库进行数据处理
  • C#中bcp批量复制数据到数据库中的实例代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3