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支持的两种批 ...
随机推荐
- 基于SSH框架、Oracle数据库、easyui的分页显示
要求:在easyui-datagrid中完成paginaton的分页功能. 1.easyui-datagrig的配置 <table id="dg" rownumbers=tr ...
- c++ 静态成员变量
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节 ...
- 针对后台列表table拖拽比较实用的jquery拖动排序
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&qu ...
- Notepad++下载需要的插件(如何在Notepad++中手动下载需要的插件)
需求说明: 下载在实际工作中需要的Notepad++插件,或者是因为Notepadd++设置的原因导致不能直接在软件中显示插件. 即手动登录到指定的链接中进行插件的下载. 操作过程: 1.以xmlto ...
- Ubuntu 建立桌面快捷方式
非常多时候,在Ubuntu下软件能够通过命令安装.可是有时候比較方便的方法就是下载一个压缩包,解压就能够使用了. 可是每次使用都要先跳到解压文件夹.这就比較麻烦.所以能够通过创建桌面快捷方式来解决问题 ...
- linux--解决oracle sqlplus 中上下左右backspace不能用
1. 解决不能backspace 方法1: stty erase ^h 在oracle用户下:在用户环境配置文件.bash_profile中加入如下语句 stty erase ^h 方法2:在sec ...
- java中被遗忘的native关键字
我是无意间看见JNI( java调用动态链接库dll )这块的东西. 所有记下来:本地声明方法 装载完成dll文件后,将使用的方法用native关键字声明. public native static ...
- JVM优化(一)-- 入门
一.JVM的概念 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现 ...
- UE4修改自Rama的UDP通信蓝图插件
UE4.15没有提供蓝图UDP的组件,可以在网上找到一个ID叫Rama写的源代码,我把它封装成插件了(MyUdpPlugin),方便在各个UE4版本工程中使用UDP通信. 使用方式: 1.在自己的工程 ...
- 编写高性能的 Lua 代码
前言 Lua是一门以其性能著称的脚本语言,被广泛应用在很多方面,尤其是游戏.像<魔兽世界>的插件,手机游戏<大掌门><神曲><迷失之地>等都是用Lua来 ...