SSIS入门教程(一) - Execute Process包示例[翻译] Level 100
文章位置: Samples and Sample Databases > Samples > SQL Server Integration
Services Samples > Package Samples >
注意:本文仅适用于SQL Server 2005标准版及以上版本,不适用于SQL Server 2005 Express
Execute Process(执行进程)包是一个用于演示如何在包中执行可执行应用程序的例子。在这个包中有一个执行进程的任务,用于执行Expand工具(expand.exe),这里的expand工具会把一个包含一个excel文件的cab文件解压缩,这样 我们在接下来的任务中就可以把这个xls作为数据源。在包第一次运行时,会有一个Execute SQL 任务,它会自动创建一张Execute_Process_Table表,而用于创建该表的T-SQL声明语句是保存在一个sql文件中的。当第二次运行 Execute SQL任务时,会先判断该表是否存在,如果存在就运行TRUNCATE TABLE。
这个任务会使用两个OLEDB连接,第一个OLEDB会从Excel数据表中读取数据,第二个OLEDB则会把读到的数据写入Execute_Process_Table表中。
配置需求
执行该示例需要具备以下一些要求
示例包的存储位置
假设示例安装在默认目录下,则Execute Process示例包位于以下位置:
C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\ExecuteProcess Sample\ExecuteProcess\
运行示例包必须包含下面这些文件
运行示例
这个包既可以在命令行下用dtexec工具执行,也可以在Business Intelligence Development Studio中运行
如果你使用的是非英语版Windows系统,你可能需要更新connection managers(连接管理器)中用到的所有文件的ConnectionString属性,只有这样这个包才能正常运行。请确认连接管理器中的路径是否有 效,如果需要,请把路径修改为正确Program Files本地路径。
使用dtexec执行包
在Business Intelligence Development Studio运行包
注意:本文仅适用于SQL Server 2005标准版及以上版本,不适用于SQL Server 2005 Express
Execute Process(执行进程)包是一个用于演示如何在包中执行可执行应用程序的例子。在这个包中有一个执行进程的任务,用于执行Expand工具(expand.exe),这里的expand工具会把一个包含一个excel文件的cab文件解压缩,这样 我们在接下来的任务中就可以把这个xls作为数据源。在包第一次运行时,会有一个Execute SQL 任务,它会自动创建一张Execute_Process_Table表,而用于创建该表的T-SQL声明语句是保存在一个sql文件中的。当第二次运行 Execute SQL任务时,会先判断该表是否存在,如果存在就运行TRUNCATE TABLE。
这个任务会使用两个OLEDB连接,第一个OLEDB会从Excel数据表中读取数据,第二个OLEDB则会把读到的数据写入Execute_Process_Table表中。
配置需求
执行该示例需要具备以下一些要求
- 示例所要用到的包和数据文件必须安装在本地硬盘上
- 你必须安装AdventureWorks数据库,并且对该数据库拥有管理员级权限
- 如果你仅仅想通过命令行运行示例包,你必须安装SQL Server 2005 Integration Services(SSIS)
- 如果你是想在设计器中打开并运行包,你必须安装Business Intelligence Development Studio
- 你 可能需要修改Execute Process任务中expand工具的路径,这是由你所使用的操作系统决定的。不同的操作系统,expand.exe文件的存储位置会有所不同,因此可 能与示例中的路径有差异。要修改Execute Process Task,右击Control Flow(控制流) 选项卡中的Execute Process任务,点选Edit。在Execute Process Task Editor(进程执行任务编辑器)中,设置Executable属性的路径为为expand的真正存储路径。
示例包的存储位置
假设示例安装在默认目录下,则Execute Process示例包位于以下位置:
C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\ExecuteProcess Sample\ExecuteProcess\
运行示例包必须包含下面这些文件
文件 |
描述 |
---|---|
UsingExecuteProcess.dtsx |
示例包 |
Customers.cab |
包含Excel表的cab文件,该Excel表将被作为数据源 |
Create_Execute_Process_Dest.sql |
Transact-SQL查询,用于在AdventureWorks数据库中创建表 |
运行示例
这个包既可以在命令行下用dtexec工具执行,也可以在Business Intelligence Development Studio中运行
如果你使用的是非英语版Windows系统,你可能需要更新connection managers(连接管理器)中用到的所有文件的ConnectionString属性,只有这样这个包才能正常运行。请确认连接管理器中的路径是否有 效,如果需要,请把路径修改为正确Program Files本地路径。
使用dtexec执行包
- 打开命令行窗口(控制台)
- 更改目录到C: Program Files\Microsoft SQL Server\90\DTS\Binn,这是dtexec的执行路径
- 键入命令:
dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\ExecuteProcess Sample\ExecuteProcess\UsingExecuteProcess.dtsx"
- 按回车键
在Business Intelligence Development Studio运行包
- 打开 Business Intelligence Development Studio
- 在文件菜单中,点Open > Project / Solution
- 更改目录至ExecuteProcess Sample目录下,双击ExecuteProcess.sln
- 在Solution Explorer(解决方案浏览器)中,右击SSIS Package目录下的ExecuteProcess.dtsx文件,然后点击Execute Package
对象 |
作用 |
---|---|
Execute SQL task |
执行包含在Create_Execute_Process_Dest.sql文件中的Transact-SQL查询,该查询会在Adventure Works数据库中创建目标表,但仅在第一次运行包时创建,当你重新运行包时这个表会被清空,但不会被创建。 |
Execute Process task |
运行Expand工具,该工具可解压缩Customers.cab文件 |
Data Flow task |
运行包中的数据流 |
OLE DB source |
将Excel数据表作为源 |
OLE DB destination |
将Excel表中的数据保存到由Execute SQL任务创建的目标表中 |
File connection manager |
连接到sql语句声明文件(.sql),该声明用于创建Execute_Process_Table表 |
OLE DB connection manages |
包含两个OLE DB连接,一个OLE DB使用Microsoft Jet 4.0 OLE DB provider连接到Excel; 另一个使用SQL Native Client连接到AdventureWorks数据库 |
版权声明:本文由作者Tony Qu原创, 未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。