0

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

pkg1
 |
 |
 |
pkg2
 |
 |
 |
pkg3

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

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

4

1 回答 1

1

您可以将执行包任务放在 Foreach 循环容器中,并控制要通过表运行的包。当您计划连续运行软件包时,这种模式对您很有效。

一些细节:

  1. 创建一个新表

    CREATE TABLE [dbo].[ActivePackages]( [ID] [int] IDENTITY(1,1) NOT NULL, [PackageName] varchar NOT NULL, [Active] [bit] NOT NULL ) ON [PRIMARY]

  2. 插入两行

    ID 包名活动

    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(字符串)

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

    评估为表达式:真

    sSolutionFolder 字符串

    oActivePackages 对象 System.Object

    sActivePackage 字符串

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

  6. Foreach 循环容器

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

: 用户::sActivePackageFullPath 6a。内部:子包的执行包任务连接字符串:@[User::sActivePackageFullPath]

于 2013-02-06T19:35:12.207 回答