【发布时间】:2013-02-06 15:40:14
【问题描述】:
我有一个执行多个子包的 SSIS 包
pkg1
|
|
|
pkg2
|
|
|
pkg3
我想执行可配置的子包,以便我可以根据配置值更改要执行的子包。
SSIS 中的哪个选项允许我启用/禁用父包中的子包执行?
【问题讨论】:
-
在优先约束上我添加了表达式来检查变量是否设置为真。但是当它设置为 false 时,它会停止并且不会转到下一个任务。
标签: ssis
我有一个执行多个子包的 SSIS 包
pkg1
|
|
|
pkg2
|
|
|
pkg3
我想执行可配置的子包,以便我可以根据配置值更改要执行的子包。
SSIS 中的哪个选项允许我启用/禁用父包中的子包执行?
【问题讨论】:
标签: ssis
您可以将执行包任务放在 Foreach 循环容器中 并控制要通过表格运行的包。正如你计划的那样 串行运行包,这种模式很适合你。
一些细节:
创建一个新表
创建表 [dbo].[ActivePackages]( [ID] [int] IDENTITY(1,1) 非空, [包名] varchar NOT NULL, [活动] [位] 非空 ) 在 [主要] 上
插入两行
ID 包名活动
1 c_mp_Child1.dtsx 0
2 c_mp_Child2.dtsx 1
创建一个父包 (p_MainPackage.dtsx) 和两个子包(c_mp_Child1.dtsx 和 c_mp_Child2.dtsx)
p_MainPackage.dtsx 的说明 变量
sActivePackageFullPath(字符串)
表达式:@[User::sSolutionFolder] + "\" + @[User::sActivePackage]
评估为表达式:真
sSolutionFolder 字符串
oActivePackages 对象 System.Object
sActivePackage 字符串
执行 SQL 任务 -- 获取活动项目列表并存储在 oActivePackages 中
Foreach 循环容器
枚举器:Foreacj ADO 枚举器 ADO 对象源变量:User::oActiveProject 变量映射
: 用户::sActivePackageFullPath 6a。内部:执行打包任务 子包的连接字符串:@[User::sActivePackageFullPath]
【讨论】: