SSIS常用的包—使用Bulk Insert执行任务
2011-01-24 10:19
405 查看
现在执行一个简单的
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退出界面。
![](http://images.cnblogs.com/cnblogs_com/tylerdonet/3-5.gif)
从工具栏中拖放一个Bulk Insert Task,双击打开编辑界面,在Connection标签选择下拉列表中的<New connection
……
>
新建一个OLE DB连接,在这个界面中新建一个连接,连接到本地服务器中
AdventureWorks
数据库中,界面如图
3-3
,在你自己的机器上信息可能有所不同
,新建连接的界面如下。
![](http://images.cnblogs.com/cnblogs_com/tylerdonet/3-3.gif)
在
Connection下拉列表框内现在可以看到刚才创建的链接,在目标表中选择表
[AdventureWorks].[dbo].[InsertContent
]。其他设置保持默认。行间隔符是
{CR}{LF}(表示回车换行),列间隔符是制表符。在
File框内再次选择
<New connection…>
创建一个连接,打开连接管理界面。在
Usage Type下拉列表框中选择
Existing File
,这里选择
C:/SSISDemos/ZipCode.txt。最终的界面如下图
3-4
![](http://images.cnblogs.com/cnblogs_com/tylerdonet/3-4.gif)
下一步在
Options标签界面内设置
FirstRow为
2。如果打开
ZipCode.txt文件,可以发现在数据行之间有一个表头。设置
FirstRow为
2执行
task的时候将忽略第一行的表头,从第二行开始插入。点击
OK退户界面。
点击任务
第一个Purge InsertContent Table底部的绿色箭头不放,拖动鼠标指向第二个任务
Load Zip Codes,会有一条绿色带箭头连线。这个连线创建两个
task之间的先后顺序,第一个
task执行成功之后第二个任务才能执行。至此这个
package已经完成了,点击保存并执行它。执行的时候首先使用
SQL语句将表清空,然后
bulk insert重新插入数据,执行成功之后,图标变成绿色的,如下图
3-6
![](http://images.cnblogs.com/cnblogs_com/tylerdonet/%E6%9C%AA%E6%A0%87%E9%A2%98-1.gif)
点击
Stop
按钮可以中断执行。
Bulk Insert
的弊端是不能进行错误处理,它是一种要么全部,要么没有的任务。如果一行插入失败整个任务都将失败(通过设置最大错误数可以改变这种情况)。
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退出界面。
![](http://images.cnblogs.com/cnblogs_com/tylerdonet/3-5.gif)
从工具栏中拖放一个Bulk Insert Task,双击打开编辑界面,在Connection标签选择下拉列表中的<New connection
……
>
新建一个OLE DB连接,在这个界面中新建一个连接,连接到本地服务器中
AdventureWorks
数据库中,界面如图
3-3
,在你自己的机器上信息可能有所不同
,新建连接的界面如下。
![](http://images.cnblogs.com/cnblogs_com/tylerdonet/3-3.gif)
在
Connection下拉列表框内现在可以看到刚才创建的链接,在目标表中选择表
[AdventureWorks].[dbo].[InsertContent
]。其他设置保持默认。行间隔符是
{CR}{LF}(表示回车换行),列间隔符是制表符。在
File框内再次选择
<New connection…>
创建一个连接,打开连接管理界面。在
Usage Type下拉列表框中选择
Existing File
,这里选择
C:/SSISDemos/ZipCode.txt。最终的界面如下图
3-4
![](http://images.cnblogs.com/cnblogs_com/tylerdonet/3-4.gif)
下一步在
Options标签界面内设置
FirstRow为
2。如果打开
ZipCode.txt文件,可以发现在数据行之间有一个表头。设置
FirstRow为
2执行
task的时候将忽略第一行的表头,从第二行开始插入。点击
OK退户界面。
点击任务
第一个Purge InsertContent Table底部的绿色箭头不放,拖动鼠标指向第二个任务
Load Zip Codes,会有一条绿色带箭头连线。这个连线创建两个
task之间的先后顺序,第一个
task执行成功之后第二个任务才能执行。至此这个
package已经完成了,点击保存并执行它。执行的时候首先使用
SQL语句将表清空,然后
bulk insert重新插入数据,执行成功之后,图标变成绿色的,如下图
3-6
![](http://images.cnblogs.com/cnblogs_com/tylerdonet/%E6%9C%AA%E6%A0%87%E9%A2%98-1.gif)
点击
Stop
按钮可以中断执行。
Bulk Insert
的弊端是不能进行错误处理,它是一种要么全部,要么没有的任务。如果一行插入失败整个任务都将失败(通过设置最大错误数可以改变这种情况)。
相关文章推荐
- SSIS常用的包—使用Bulk Insert执行任务
- SSIS常用的包—大量插入任务(Bulk Insert task)
- SSIS常用的包—执行程序包任务
- SSIS常用的包—执行程序包任务
- SSIS常用的包—XML任务,SQL分析服务执行DDL和Processing任务
- SSIS常用的包—大量插入任务(Bulk Insert task)
- 3.4 使用Bulk Insert和Execute SQL任务
- SSIS常用的包—执行任务
- SSIS常用的包—执行任务
- SSIS执行SQL任务时加入参数
- Linux使用crontab实现PHP执行定时任务
- SSIS常用的包—FTP任务
- Linux下使用crontab来执行定时任务计划
- 使用spring @Scheduled注解执行定时任务、
- 使用Spring Quartz执行定时任务
- 使用zookeeper搭建分布式定时任务可执行锁
- linux使用crontab实现PHP执行定时任务
- Grunt-几个常用的任务配置,加载,执行的写法
- 使用ASP.NET实现Windows Service定时执行任务
- 在winform中使用进度条显示任务的执行进度