SQL Server通过BCP进行大批量数据导入导出
预置条件:
使用sa帐号登录SQL Server Management Studio,右键点击安全性-登录名-数据库用户名属性,设置服务器角色为sysadmin。
删除已存在的存储过程
String JOB_BCP_DELETE_SQL = “IF EXISTS (SELECT * FROM sys.objects WHERE name = 'PROCEDURE_BCP_OUT' AND type in (N'P', N'PC'))\n DROP PROCEDURE PROCEDURE_BCP_OUT \n”;
pre = conn.prepareStatement(JOB_BCP_DELETE_SQL);
pre.execute();
创建存储过程
String sql = "set @sql = N'BCP ' + @tableName + ' out ' + @filePath + ' -c -t -U \"' + @userName + '\" -P \"' + @password + '\" -S \"' + @dbIp + '\"'\n";
StringBuffer createSqlBuf = new StringBuffer();
createSqlBuf.append("CREATE PROCEDURE PROCEDURE_BCP_OUT \n")
.append("@dbIp nvarchar(256),\n")
.append("@userName nvarchar(256),\n")
.append("@password nvarchar(256),\n")
.append("@tableName nvarchar(256),\n")
.append("@filePath nvarchar(256)\n")
.append("AS\n")
.append("BEGIN\n")
.append("EXEC master.sys.sp_configure 'show advanced options', 1\n")
.append("RECONFIGURE\n")
.append("EXEC master.sys.sp_configure 'xp_cmdshell', 1\n")
.append("RECONFIGURE\n")
.append("declare @sql nvarchar(256)\n")
.append(sql)
.append("EXEC master..xp_cmdshell @sql\n")
.append("EXEC master.sys.sp_configure 'show advanced options', 1\n")
.append("RECONFIGURE\n")
.append("EXEC master.sys.sp_configure 'xp_cmdshell', 0\n")
.append("RECONFIGURE\n")
.append("END");
String createSql = createSqlBuf.toString();
pre = conn.prepareStatement(createSql);
pre.execute();
执行存储过程
StringBuffer execSqlBuf = new StringBuffer();
execSqlBuf.append("EXECUTE PROCEDURE_BCP_OUT \n")
.append("@dbIp=?, ").append("@userName=?, ").append("@password=?, ")
.append("@tableName=?, ").append("@filePath=?");
String execSql = execSqlBuf.toString();
pre = conn.prepareStatement(execSql);
pre.setString(1, dbIp);
pre.setString(2, dbUserName);
pre.setString(3, dbPassword);
pre.setString(4, tableName);
pre.setString(5, file);
pre.execute();
SQL Server通过BCP进行大批量数据导入导出的更多相关文章
- SQL Server 使用bcp进行大数据量导出导入
转载:http://www.cnblogs.com/gaizai/archive/2010/04/17/1714389.html SQL Server的导出导入方式有: 在SQL Server中提供了 ...
- Java实现大批量数据导入导出(100W以上) -(一)导入
最近业务方有一个需求,需要一次导入超过100万数据到系统数据库.可能大家首先会想,这么大的数据,干嘛通过程序去实现导入,为什么不直接通过SQL导入到数据库. 大数据量报表导出请参考:Java实现大批量 ...
- Java实现大批量数据导入导出(100W以上) -(二)导出
使用POI或JXLS导出大数据量(百万级)Excel报表常常面临两个问题: 1. 服务器内存溢出: 2. 一次从数据库查询出这么大数据,查询缓慢. 当然也可以分页查询出数据,分别生成多个Excel打包 ...
- Java实现大批量数据导入导出(100W以上) -(三)超过25列Excel导出
前面一篇文章介绍大数据量导出实现: Java实现大批量数据导入导出(100W以上) -(二)导出 这篇文章在Excel列较少时,按以上实际验证能很快实现生成.但如果列较多时用StringTemplat ...
- SqlBulkCopy实现大批量数据导入
//自增列重新生成:SqlBulkCopy bc = new SqlBulkCopy(conn) //自增列保留原值:SqlBulkCopy bc = new SqlBulkCopy(conn,Sql ...
- SQL Server中bcp命令的用法以及数据批量导入导出
原文:SQL Server中bcp命令的用法以及数据批量导入导出 1.bcp命令参数解析 bcp命令有许多参数,下面给出bcp命令参数的简要解析 用法: bcp {dbtable | query} { ...
- SQL SERVER 和ACCESS的数据导入导出
//批量导入Access string filepath = Server.MapPath("student.mdb"); stri ...
- SQL Server数据导入导出的几种方法
在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,结合我在做项目时的经历做一下汇总: 1. SQL Server导入导出向导,这种方式是最方便的. 导入向导 ...
- SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
* 说明:复制表(只复制结构,源表名:a 新表名:b) select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) ...
随机推荐
- 为何GET只发一次TCP连接,POST发两次TCP连接
GET和POST是HTTP请求的两种基本方法,要说他们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...
- 【消灭代办】第5周 - null拷贝,input自适应,进度条加载,颜色随机值
2018.12.10 代办一:javascript中js怎么拷贝null的值 null属于简单类型的数值,直接进行拷贝即可: 2018.12.11 代办二:怎么让input自适应宽度? 这样是写下代办 ...
- Ubuntu系统安装nginx
1.首先查看linux系统 cat /proc/version Linux version 4.9.59-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (cr ...
- weapp-mobx
// weapp-mobx.js const l = console.log; import { autorun } from "./mobx.umd.min"; function ...
- web开发——入门篇(上)
作为一名IT届的后生,当初也经历过懵懂无知的实习期,对那种无力感深有体会.在这,希望能用我这几年的开发经验,让各位即将踏入或者刚刚踏入web开发领域的新人们少走些弯路.鉴于这是入门篇,下面我就从零为大 ...
- 前端上传 base64 编码图片到七牛云存储
参考文档 如何上传base64编码图片到七牛云 调试过程 文档中分别有 java 和 html 的 demo,可以根据文档示例调试. 下面是我调试的过程,可以作为参考,特别注意的是,如果需要给文件起名 ...
- loadrunner笔记(三):设置、运行场景和生成测试报告
//上一篇的代码有点问题,问题出在 web_reg_find()函数中,这个函数简单的说是搜索下一步操作的请求对象(html)页面中是否存在相应的文本字符串.所以用在登录操作中,它搜索的是主页.htm ...
- Python学习之旅(一)
Python的简介 Python是一种面向对象的.动态的脚本语言,可用来设计网页和开发后台功能.其创始人Guido van Rossum于1989年圣诞节期间创造了这门语言. (图片来自百度) Pyt ...
- C#压缩图片时保留原始的Exif信息
啥是Exif信息,有啥用,百度百科有解释: Exif百科 总之,这东西对摄影爱好者来说是不可或缺的,通常使用Photoshop来压缩只要不是保存为Web格式都会保留Exif信息. 而我们写代码来压缩图 ...
- MOT北京站 | 卓越研发之路:亿万级云端架构演进
随着IT行业技术周期的快速迭代,如何在激烈的市场竞争中突出重围成为了不少技术人的困惑.除了要保持良好的技术视野外,多向IT行业精英学习他们分享的实战经验,也可让技术提升,达到事半功倍的效果. MOT北 ...