sql server 内置ETL工具学习

常用的导入方式:bcp, BULK INSERT,OPENROWSET和 SSIS。

BCP

BCP全称BULK COPY PROGRAM

有以下特点:

  • 命令行工具
  • 导出为文本文件

在异构数据库之间迁移 数据时,这个一个比较通用的方法,因为基本上所有的数据库都支持文本文件。

命令参考文档@MSDN

导出一张表

导出数据文件

bcp AdventureWorks2012.HumanResources.Employee OUT d:\dump\Employee.txt -c"char" -t"|" -r\n -T

其中 -c表示导出用的字符类型,默认为char

-t表示字段分隔符

-r表示换行符

-T表示使用本地操作系统认证

bcp AdventureWorks2012.HumanResources.Employee OUT d:\dump\Employee.txt -c"char" -t"|" -r"\n" -U"sa" -P"sql2015" -S"RJD08"

其中-U表示用户名

-P表示密码

-S表示服务器名

导出数据格式

bcp AdventureWorks2012.HumanResources.Employee format nul -f d:\dump\Employee_format.fmt -t"|" -c -r"\n" -T

其中-f 表示导出的是format文件

数据导入

新建表结构

导入时需要新建目标表结构,使用select * into创建方式。

use AdventureWorks2012
go select * into HumanResources.Employee_temp
from HumanResources.Employee where 1=2; select * from HumanResources.Employee_temp;

执行导入

使用bcp

命令: bcp …in 格式: -f format_file

BCP AdventureWorks2012.HumanResources.Employee_temp in d:\dump\Employee.txt -c -f d:\dump\Employee_format.fmt -T

BULK insert

可以在ssms中执行

DELETE HumanResources.Employee_temp
GO
SELECT COUNT(*) FROM HumanResources.Employee_temp
GO
BULK INSERT HumanResources.Employee_temp
FROM 'd:\dump\Employee.txt'
WITH (FORMATFILE = 'd:\dump\Employee_format.fmt');
GO
SELECT COUNT(*) FROM HumanResources.Employee_temp
GO

OPENROWSET 大容量行集提供程序

同样是在ssms中执行

DELETE HumanResources.Employee_temp
GO
SELECT COUNT(*) FROM HumanResources.Employee_temp
GO
INSERT INTO HumanResources.Employee_temp
SELECT *
FROM OPENROWSET(BULK 'd:\dump\Employee.txt',
FORMATFILE='d:\dump\Employee_format.fmt'
) as t1;
GO
SELECT COUNT(*) FROM HumanResources.Employee_temp
GO

其它

bcp也可以在ssms中执行,可以用以下命令实现。

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

sql server 内置ETL工具学习(一) BCP篇的更多相关文章

  1. SQL Server内置的HTAP技术

    SQL Server内置的HTAP技术 目录 背景 SQL Server在OLAP上的发展 SQL Server的初代HTAP SQL Server逐渐增强的HTAP SQL Server列存总结 H ...

  2. SQL Server 内置函数、临时对象、流程控制

    SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...

  3. 10、SQL Server 内置函数、临时对象、流程控制

    SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...

  4. sql server内置存储过程、查看系统信息

    1.检索关键字:sql server内置存储过程,sql server查看系统信息 2.查看磁盘空间:EXEC master.dbo.xp_fixeddrives , --查看各个数据库所在磁盘情况S ...

  5. 总结Sql Server内置函数实现MD5加密

    --MD5加密 --HashBytes ('加密方式', '待加密的值') --加密方式= MD2 | MD4 | MD5 | SHA | SHA1 --返回值类型:varbinary(maximum ...

  6. sql server内置函数

    MSDN标准文档:https://msdn.microsoft.com/zh-cn/library/ff848784(v=sql.120).aspx 配置函数 select @@servername ...

  7. mysql 内置函数和sql server 内置函数的区别

    以下函数均没有对参数做说明,使用的使用需要了解其参数内容 数据库 sql server mysql oracle 举例 获得当前系统时间 getdate() now() sysdate  注意不是函数 ...

  8. SQL Server ->> 内置标量函数TRY_PARSE、TRY_CAST和TRY_CONVERT的各自特点和区别

    SQL Server到了目前的2014版本有三个函数是用来转换数据格式的.虽说之前版本中已经有CAST和CONVERT这两个函数来干这个事情.问题是,一旦往目标数据类型转换失败就会造成报错. TRY_ ...

  9. SQL Server 内置函数实现MD5加密

    一.MD5加密 HASHBYTES ('加密方式', '待加密的值')     加密方式= MD2 | MD4 | MD5 | SHA | SHA1     返回值类型:varbinary(maxim ...

随机推荐

  1. Difference between Linearizability and Serializability

    原文:http://stackoverflow.com/questions/8200015/what-is-the-difference-between-serializability-and-lin ...

  2. 投资统计查询sql

    select COUNT(*) from YYD_Users_RegInfo where regTime between '2016-07-11 00:00:00' and '2016-07-11 2 ...

  3. PHP 长字符串替换操作性能(替换多换注释的代码)

    因为写一个css合并工具,去掉注释时,发现正则表达式很难写,最后,还是用php来实现吧,但是一不小心写出来的代码居然报内存超出可用的128m!! 原因是因为我找到/*和*/之后 $str=substr ...

  4. java.io中流的操作:字节流、字符流

    java.io中流的操作:字节流.字符流(1)使用File类打开一个文件(2)通过字节流或字符流的子类指定输出的位置(3)进行读/写操作(4)关闭输入/输出 1.字节流:主要是byte类型数据,以by ...

  5. 神奇的NOIP模拟赛 T2 LGTB 学分块

    LGTB 学分块 LGTB 最近在学分块,但是他太菜了,分的块数量太多他就混乱了,所以只能分成3 块今天他得到了一个数组,他突然也想把它分块,他想知道,把这个数组分成3 块,块可以为空.假设3 块各自 ...

  6. wp8.1 Study11:APP里文件读写和使用XML和Json序列化

    一.文件读写 1.基本操作(使用FileIO API) 这个方法在上一个stduy已经学过,那么贴出来复习下,代码如下: private async void writeTextToLocalStor ...

  7. Spring学习笔记之方法注入

    public  abstract class ReplacedBean {protected static final Log log = LogFactory.getLog(ReplacedBean ...

  8. SharePoint表单和工作流 - Nintex篇(四)

    博客地址 http://blog.csdn.net/foxdave 接上篇点击打开链接 "Manage workflow constants" 管理工作流常量.这里可以管理工作流中 ...

  9. PHP 中的 9 个魔术方法

    这个标题有点牵强因为php有不只9种魔术方法, 但是这些将会引导你使用php魔术方法一个好的开始.它可能魔幻,但是并不需要魔杖. 这些'魔术'方法拥有者特殊的名字,以两个下划线开始,表示这些方法在ph ...

  10. 简单的php Mysql类(查询 删除 更新)

    php Mysql类一般都包括了几乎我们常用的数据库操作方法,这里只提供了查询 删除 更新三种操作,算不是很全只是一个简单的数据库查询类了.      代码如下 复制代码 class mysql { ...