bcp+Sql语句抽取数据导出
最近由于项目的需求,需要将项目数据库中的数据按照一定的规则抽取出来,然后再导入到另外一个结构相同的数据库中;之前也使用过bcp的功能,但是只使用bcp将整个表的数据导入到一个csv文件中,查看了一下bcp命令的参数,发现bcp命令后面可以加sql语句,然后带上-queryout参数,就可以按照自己的逻辑将数据抽取出来,然后导入到csv文件中了,但是在实际使用中还是遇到了不少的困难,经过多次尝试,最终还是得以完成了,也积累了如下几个小经验。
一、bcp命令可以直接在Command窗口运行,你可以单击开始菜单-运行-cmd-进入Command窗口,然后输入你编写好的bcp语句
二、可以调用系统存储过程master..xp_cmdshell来调用bcp命令
三、如果需要使用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
四、调用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 '
五、sql语句中涉及的表名,必须用数据库.拥有者.表名的格式,如SchoolDataBase.dbo.School
六、sql语句需要放在双引号内,而在实际应用时,单引号和双引号太多,而且嵌套,还是需要变化一下,采用字符串连接的方式,如:
"exec master..xp_cmdshell 'bcp \""+sql语句+"\" -queryout d:\test.csv -Usa -Ppassword -S127.0.0.1 -c'"
七、sql语句不可以有回车换行符,这个是折腾我半天时间才发现的,没办法,只能再曲线救国,于是出现了如下的sql语句:
"exec master..xp_cmdshell 'bcp \""+sql语句.Replace("\r\n"," ")+"\" -queryout -Usa -Ppassword -S127.0.0.1 -c'"
这样,将上面语句作为一条sql语句放在sqlCommand中进行执行即可。
经过上述一番折腾,终于可以抽取数据导出了。
转载于:https://www.cnblogs.com/RascallySnake/archive/2010/11/17/1880287.html
bcp+Sql语句抽取数据导出相关推荐
- 关于Sqlserver中 BCP命令,实现数据导出功能。
关于Sqlserver中 BCP命令,实现数据导出功能. exec master..xp_cmdshell 'bcp "select 账号 ,姓名, 账号 from datat.dbo.个人 ...
- 不同版本的SQL Server之间数据导出导入的方法及性能比较
原文:不同版本的SQL Server之间数据导出导入的方法及性能比较 工作中有段时间常常涉及到不同版本的数据库间导出导入数据的问题,索性整理一下,并简单比较下性能,有所遗漏的方法也欢迎讨论.补充. 0 ...
- 在SQL Server中将数据导出为XML和Json
BCP "SELECT DEPT_CODE,PARENTCODE FROM longshinewebhr.dbo.b01 where PARENTCODE like '10201%' FOR ...
- 导出mysql sql语句吗_mysql sql语句导入与导出
mysql sql语句导入与导出 导入: mysql -u root -p 数据库名 如: C:/mysql/bin>mysql -u root -p house < c:/1-1.txt ...
- 使用SQL语句UPDATE数据,怎样知道是否UPDATE成功
http://www.ixpub.net/thread-1252609-1-1.html 使用SQL语句UPDATE数据,怎样知道是否UPDATE成功 如题,我在RPG中使用SQL语句UPDATE数据 ...
- 利用SQL语句对数据进行操作:插入、更新与删除数据行
My目录 前言 一.T-SQL的组成 二.插入数据行 1.一次插入一行数据 2.一次插入多行数据 三.更新数据行 四.删除数据行 前言 结构化查询语言(Structured Query Languag ...
- mysql中常用的筛查语句,使用SQL语句进行数据筛选的方法
在使用VBA对数据库进行访问时,利用SQL语句能够方便地实现对数据库的查询.本文使用SQL语句实现多条件查询,使用Select语句从"成绩管理.accdb"数据库文件中获取1班中数 ...
- 使用SQL语句删除数据表
使用SQL语句删除数据表 其语法格式如下: database_name:要在其中创建表的数据库名称. schema_name:表所属架构的名称. table_name:要删除的表名称. DROP TA ...
- JavaWeb学习笔记(数据库、SQL语句、数据查询语法、完整性约束、编码、备份和恢复数据、多表查询)
数据库.SQL语句.数据查询语法.完整性约束.编码.备份和恢复数据.多表查询 JavaWeb学习笔记 数据库 数据库概念 基本命令 启动和关闭mysql服务器 客户端登录退出mysql SQL语句 S ...
最新文章
- Linux系统下配置Java环境
- linux lw3m多行文本使用,linux常用命令以及一些常见问题和解决方法教程.docx
- ZJOI2019赛季回顾
- Fedora 17 下 Samba 服务快速设置
- emlog-FLY主题模板1.4版本免费完全开源
- 有了IDEA中的这款插件,流程图、类图轻松搞定,简直神器!
- python保存列表到json_将json数据保存到python列表中时出现问题
- 【报告分享】2020海外留学趋势报告.pdf(附下载链接)
- WindStyle ExifInfo for Windows Live Writer发布
- 使用EasyCHM破解版制作CHM帮助文档
- Java设计模式(思维导图)
- fai 自动安装debian 7.4
- iOS10兼容,最新特性。
- 11套宝藏特效视频素材大约263GB 免费分享
- 解决 git@gitlab.com: Permission denied (publickey,gssapi-with-mic,password)
- IOS内购IAP(IN-APP-PURCACHE)收据
- Vue教程-4-Vue CLI快速入门
- 2018-2019-2 网络对抗技术 20165230 Exp4 恶意代码分析
- C++学习笔记【模板】
- 河南理工大学袁瑞甫教授《智能采矿》MOOC习题库(整理版)
热门文章
- C++ STL stirng的复制比较
- delay在java中有什么用_java中DelayQueue的使用
- python 有什么一般人不知道的缺点_关于python,你知道它的优缺点吗?
- java tiff 压缩_使用Java ImageIO进行Tiff压缩
- python动态添加类方法_Python 动态添加类方法
- 数据结构之外部排序:失败树
- 【README2】动态规划之斐波那契数列说明重叠子问题如何解决
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- Python之OS模块:os.access()检验权限模式(验证文件及目录权限)
- Nmap个人实战总结