【问题标题】:How to execute child packages selectively based on configuration values?如何根据配置值有选择地执行子包?
【发布时间】:2013-02-06 15:40:14
【问题描述】:

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

pkg1
 |
 |
 |
pkg2
 |
 |
 |
pkg3

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

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

【问题讨论】:

  • 在优先约束上我添加了表达式来检查变量是否设置为真。但是当它设置为 false 时,它​​会停止并且不会转到下一个任务。

标签: ssis


【解决方案1】:

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

一些细节:

  1. 创建一个新表

    创建表 [dbo].[ActivePackages]( [ID] [int] IDENTITY(1,1) 非空, [包名] varchar NOT NULL, [活动] [位] 非空 ) 在 [主要] 上

  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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多