我有一个执行多个子包的SSIS包
pkg1
|
|
|
pkg2
|
|
|
pkg3
我想执行可配置的子包,以便我可以根据配置值更改要执行的子包。
SSIS中的哪个选项允许我在父包中启用/禁用子包执行?
答案 0 :(得分:0)
您可以将一个执行包任务放在Foreach循环容器中 并控制要通过表运行的包。正如你计划的那样 按顺序运行包,这种模式适合你。
一些细节:
创建新表
CREATE TABLE [dbo]。[ActivePackages]( [ID] [int] IDENTITY(1,1)NOT NULL, [PackageName] varchar NOT NULL, [有效] [位] NOT NULL )ON [PRIMARY]
插入两行
ID PackageName Active
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(String)
表达式:@ [User :: sSolutionFolder] +“\”+ @ [User :: sActivePackage]
评估为表达式:True
sSolutionFolder String
oActivePackages Object System.Object
sActivePackage String
执行SQL任务 - 获取活动项目列表并存储在oActivePackages中
Foreach循环容器
枚举器:Foreacj ADO枚举器 ADO对象源变量:User :: oActiveProject 变量映射
:User :: sActivePackageFullPath 6A。内部:执行包任务 Child包的连接字符串:@ [User :: sActivePackageFullPath]