如何根据配置值有选择地执行子包?

时间:2013-02-06 15:40:15

标签: ssis

我有一个执行多个子包的SSIS包

pkg1
 |
 |
 |
pkg2
 |
 |
 |
pkg3

我想执行可配置的子包,以便我可以根据配置值更改要执行的子包。

SSIS中的哪个选项允许我在父包中启用/禁用子包执行?

1 个答案:

答案 0 :(得分:0)

您可以将一个执行包任务放在Foreach循环容器中 并控制要通过表运行的包。正如你计划的那样 按顺序运行包,这种模式适合你。

一些细节:

  1. 创建新表

    CREATE TABLE [dbo]。[ActivePackages](     [ID] [int] IDENTITY(1,1)NOT NULL,     [PackageName] varchar NOT NULL,     [有效] [位] NOT NULL )ON [PRIMARY]

  2. 插入两行

    ID PackageName Active

    1 c_mp_Child1.dtsx 0

    2 c_mp_Child2.dtsx 1

  3. 创建父(p_MainPackage.dtsx)和两个子包(c_mp_Child1.dtsx和c_mp_Child2.dtsx)

  4. p_MainPackage.dtsx的说明 变量

    sActivePackageFullPath(String)

    表达式:@ [User :: sSolutionFolder] +“\”+ @ [User :: sActivePackage]

    评估为表达式:True

    sSolutionFolder String

    oActivePackages Object System.Object

    sActivePackage String

  5. 执行SQL任务 - 获取活动项目列表并存储在oActivePackages中

  6. Foreach循环容器

    枚举器:Foreacj ADO枚举器     ADO对象源变量:User :: oActiveProject     变量映射

  7. :User :: sActivePackageFullPath 6A。内部:执行包任务         Child包的连接字符串:@ [User :: sActivePackageFullPath]