SQL Server批量数据导出导入BCP&Bulk使用
数据导出导入,首先考虑使用什么技术实现导出与导入
利用BCP结合Bulk技术实现数据的导出与导入
- 1.bcp数据导出(这里是命令行方式),导出的数据需是格式化的,有两种方式可选
- a.对传输的数据格式要求宽松,无需使用约束格式的文件,使用BCP技术直接导出指定分隔符的文本文件,如csv
导出数据示例
bcp "SELECT * from updext.dbo.ext_Users where 1>=1" queryout "c:\a.csv" -c -t"0x0b" -r"\n" -S".\SQLSERVER2012" -U"user" -P"password"
- b.数据格式要求较高,需要专门导出格式文件,用于导入数据时使用
先导出数据格式文件
bcp "updext.dbo.ext_users" format null -c -t"0x0a" -x -f "c:\data.fmt" -r"\n" -S".\SQLSERVER2012" -U"username" -P"password"
再导出数据文件,导入导出往往用于系统间数据同步,因此考虑使用SQL查询queryout
- 若需要按数据格式文件导出数据
bcp "SELECT * FROM updext.dbo.ext_users WHERE changetime<GETDATE()" queryout "c:\DATA1.csv" -f "c:/data.fmt" -t"0x0a" -r"\n" -S".\SQLSERVER2012" -U"username" -P"password"
- 若自定义数据分隔符
bcp "SELECT * FROM updext.dbo.ext_users WHERE changetime<GETDATE()" queryout "c:\DATA1.csv" -c -t"0x0a" -r"\n" -S".\SQLSERVER2012" -U"username" -P"password"
- 2.导入数据
- 如果是整体数据导入
BULK INSERT updext.dbo.ax--(UserId,UserNo,UserName,PassWord,Email,Code,IsValid,ChangeTime)
FROM 'c:\DATA1.csv'
WITH(
--KEEPIDENTITY,
--FIELDTERMINATOR ='0x0a',--避免使用逗号分隔,内容中出现逗号的概率太大
--ROWTERMINATOR ='\n',
--FIRSTROW = 1
FORMATFILE = 'c:\data.fmt'
)
- 如果只需要导入部分数据
INSERT INTO updext.dbo.ax(UserId,UserNo,UserName,PassWord,Email,Code,IsValid,ChangeTime)
SELECT UserId,UserNo,UserName,PassWord,Email,Code,IsValid,ChangeTime
FROM OPENROWSET(BULK N'c:\DATA1.csv', FORMATFILE=N'c:\data.fmt') a
WHERE ChangeTime<'2017-01-06 12:02:31.067'
SQL Server批量数据导出导入BCP&Bulk使用的更多相关文章
- SQL Server批量数据导出导入BCP使用
BCP简介 bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据.bcp可以将数据库的表或视图直接导出,也能通过 ...
- SQL Server批量数据导出导入Bulk Insert使用
简介 Bulk insert命令区别于BCP命令之处在于它是SQL server脚本语句,它可以将本地或远程的文件数据批量导入数据库,速度非常之快:远程文件必须共享才行, 文件路径须使用通用约定(UN ...
- 不同版本的SQL Server之间数据导出导入的方法及性能比较
原文:不同版本的SQL Server之间数据导出导入的方法及性能比较 工作中有段时间常常涉及到不同版本的数据库间导出导入数据的问题,索性整理一下,并简单比较下性能,有所遗漏的方法也欢迎讨论.补充. 0 ...
- 在SQL Server中将数据导出为XML和Json
有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做 ...
- SQL Server 将数据导出为XML和Json
有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做,而SQ ...
- SQL Server将数据导出到SQL脚本文件
http://www.studyofnet.com/news/list-8883.2-1-4.html 一.SQL Server 2008将数据导出到SQL脚本文件 1.打开SQL Server200 ...
- Azure 云平台用 SQOOP 将 SQL server 2012 数据表导入 HIVE / HBASE
My name is Farooq and I am with HDinsight support team here at Microsoft. In this blog I will try to ...
- Sql server 2008 R2 导出/导入数据报错之无法打开全局共享内存以与性能 DLL 通信
- SQL Server 批量插入数据的两种方法
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍 SQL Server支持的两种批 ...
随机推荐
- unity3d中的DontDestroyOnLoad来回切换出现多个实例问题
在用Unity3D开发游戏中,我们会经常创建多个场景,但是在场景过度的时候,通常场景中的对象会被删除.所以Unity3D给了我们一个不删除前一个 场景中的某一个对象或者脚本的API,那就是“DontD ...
- javaEE mvc样例具体解释
一个不错的样例值得细细品味: 以下依照包顺序将代码贴出来供大家參考: IEmpDAO package org.lzch.dao; import java.util.List; import org.l ...
- 【转】理清基本的git(github)流程
概述 当我初次接触git时,我需要快速学习基本的git工作流,以便快速接收一个开源Web项目维护.但是,我很难理解工作流程,因为我不太了解git使用关键点. fork,clone,pull.branc ...
- C#------?和??运算符的作用
转载: http://www.cnblogs.com/zfanlong1314/archive/2012/02/26/2390456.html 1.?的作用 在处理数据库和其他包含不可赋值的元素的数据 ...
- Java精选笔记_网络编程
网络编程 概述 现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈. 在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(C ...
- Error: could not find java.dll如何解决
安装配置Java环境变量,在命令行中运行java -version进行测试时却出现下面的问题: Error: opening registry key 'Software\JavaSoft\Java ...
- java中被遗忘的native关键字
我是无意间看见JNI( java调用动态链接库dll )这块的东西. 所有记下来:本地声明方法 装载完成dll文件后,将使用的方法用native关键字声明. public native static ...
- ELK5.X使用X-Pack配置密码
一.前言 前面使用ELK5.X+logback搭建日志平台,但是,当访问kibana 时,直接就可以访问了,如果设置登录名和密码,是不是更好呢?答案是肯定的,这里使用X-Pack来配置登录名和密码. ...
- date类型数据插入
--字段类型是dateinsert into tab(column) values(to_date('2017_06_30 11:38:22','yyyy-mm-dd hh24:mi:ss'));-- ...
- Linux下gcc编译生成动态链接库*.so文件并调用它(注:执行Test程序后无需用export 命令指定.so库文件路径:方法在文中下方;)
动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一 ...