SSIS常用的包—使用Bulk Insert执行任务

简介: 现在执行一个简单的bulk insert任务来练习刚才讨论的话题。首先创建一个名字为的SSIS项目。将Package.dtsx重新命名为BulkLoadZip.dtsx,如果弹出对话框提示是否重命名选择是。

现在执行一个简单的bulk insert任务来练习刚才讨论的话题。首先创建一个名字为的SSIS项目。将Package.dtsx重新命名为BulkLoadZip.dtsx,如果弹出对话框提示是否重命名选择是。

   首先新建文件夹C:\SSISDemos,将文件(/Files/tylerdonet/ZipCode.txt)放入这个文件夹内。然后在本地新建数据库,名字使用微软常用数据库的名字AdventureWorks,使用下面的代码新建一个表:

1  CREATE   TABLE  InsertContent (
2  ZipCode  CHAR ( 5 ),
3  State  CHAR ( 2 ),
4  ZipName  VARCHAR ( 16 )
5  )

  新建一个SSIS项目,使用默认的package,将它重命名为BulkInsertTask.dtsx,切换到Control Flow界面,从工具栏中分别若放一个Execute SQL Task和Bulk Insert Task。双击打开Execute SQL Task的编辑界面,重新命名为Purge InsertContent table,在描述栏内填写自己想要的描述。

Connection框创建localhost.AdventureWorks链接,在SQLStatemen框内填写下面的SQL语句: 

1  DELETE   FROM  InsertContent

最终界面如下3-5,点击OK退出界面。

 

 

 从工具栏中拖放一个Bulk Insert Task,双击打开编辑界面,在Connection标签选择下拉列表中的<New connection……>新建一个OLE DB连接,在这个界面中新建一个连接,连接到本地服务器中AdventureWorks数据库中,界面如图3-3,在你自己的机器上信息可能有所不同,新建连接的界面如下。

 

Connection下拉列表框内现在可以看到刚才创建的链接,在目标表中选择表[AdventureWorks].[dbo].[InsertContent]。其他设置保持默认。行间隔符是{CR}{LF}(表示回车换行),列间隔符是制表符。在File框内再次选择<New connection…>创建一个连接,打开连接管理界面。在Usage Type下拉列表框中选择Existing File,这里选择C:\SSISDemos\ZipCode.txt。最终的界面如下图3-4

 

下一步在Options标签界面内设置FirstRow2。如果打开ZipCode.txt文件,可以发现在数据行之间有一个表头。设置FirstRow2执行task的时候将忽略第一行的表头,从第二行开始插入。点击OK退户界面。

点击任务第一个Purge InsertContent Table底部的绿色箭头不放,拖动鼠标指向第二个任务Load Zip Codes,会有一条绿色带箭头连线。这个连线创建两个task之间的先后顺序,第一个task执行成功之后第二个任务才能执行。至此这个package已经完成了,点击保存并执行它。执行的时候首先使用SQL语句将表清空,然后bulk insert重新插入数据,执行成功之后,图标变成绿色的,如下图3-6

 

点击Stop按钮可以中断执行。Bulk Insert的弊端是不能进行错误处理,它是一种要么全部,要么没有的任务。如果一行插入失败整个任务都将失败(通过设置最大错误数可以改变这种情况)。 



 

 

作者:Tyler Ning
出处:http://www.cnblogs.com/tylerdonet/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址williamningdong@gmail.com  联系我,非常感谢。

目录
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
6月前
|
数据库
SQLSERVER 2014 删除数据库定时备份任务提示失败DELETE 语句与 REFERENCE 约束“FK_subplan_job_id“冲突
SQLSERVER 2014 删除数据库定时备份任务提示失败DELETE 语句与 REFERENCE 约束“FK_subplan_job_id“冲突
|
SQL Oracle 关系型数据库
DBeaver同时执行多条insert into报错处理
DBeaver同时执行多条insert into报错处理
DBeaver同时执行多条insert into报错处理
|
Java 数据库连接 数据库
【hibernate 执行方法未插入数据库】hibernate的save方法成功执行,但是未插入到数据库
今天做项目,碰上这个问题: hibernate的save方法成功执行,但是未插入到数据库。 Dao层代码: 1 @Override 2 public void save(T t) { 3 this.
1114 0