我有一个执行多个子包的 SSIS 包
pkg1
|
|
|
pkg2
|
|
|
pkg3
我想执行可配置的子包,以便我可以根据配置值更改要执行的子包。
SSIS 中的哪个选项允许我启用/禁用父包中的子包执行?
我有一个执行多个子包的 SSIS 包
pkg1
|
|
|
pkg2
|
|
|
pkg3
我想执行可配置的子包,以便我可以根据配置值更改要执行的子包。
SSIS 中的哪个选项允许我启用/禁用父包中的子包执行?
您可以将执行包任务放在 Foreach 循环容器中,并控制要通过表运行的包。当您计划连续运行软件包时,这种模式对您很有效。
一些细节:
创建一个新表
CREATE TABLE [dbo].[ActivePackages]( [ID] [int] IDENTITY(1,1) NOT NULL, [PackageName] varchar NOT NULL, [Active] [bit] NOT NULL ) ON [PRIMARY]
插入两行
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]