[原创]SSIS-执行包任务调用子包且子包读取父包变量

背景:

      有时候需要将一个个开发好的独立的ETL包串接起来形成一个独立而庞大的包,如:每家分公司都开发不同的ETL包,最后使用执行包任务来将这些分公司的包给串联起来形成一个独立而完整运行的ETL包,此时我们就需要使用执行包任务,而子包中如果需要读取父包中的变量等信息,那我们就还需要配置子包的包配置为使用父包变量,以便能将父包的变量传递给子包使用。

事例:

      将父包的一个变量传递给子包输出

     [原创]SSIS-执行包任务调用子包且子包读取父包变量_第1张图片

     新建Child.dtsx包,并创建一个变量,以便接受父包中的传递变量值,这里我们使用脚本组件show出父包传递的变量值,脚本组件代码如下:

   public void Main()
   {
         MessageBox.Show(Dts.Variables["ParVarValue"].Value.ToString());
         Dts.TaskResult = (int)ScriptResults.Success;
   }

     新建Parent.dtsx包,并创建一个变量,以存储一个要传递给子包的变量值,并且拖拉一个执行包任务,新建一个文件连接到Child.dtsx包

     [原创]SSIS-执行包任务调用子包且子包读取父包变量_第2张图片

     [原创]SSIS-执行包任务调用子包且子包读取父包变量_第3张图片

     [原创]SSIS-执行包任务调用子包且子包读取父包变量_第4张图片

     配置Child.dtsx包的包配置为启用父包变量

     [原创]SSIS-执行包任务调用子包且子包读取父包变量_第5张图片

     [原创]SSIS-执行包任务调用子包且子包读取父包变量_第6张图片

     [原创]SSIS-执行包任务调用子包且子包读取父包变量_第7张图片

     最后执行,子包弹出信息

     [原创]SSIS-执行包任务调用子包且子包读取父包变量_第8张图片

你可能感兴趣的:(SSI)