SSIS实际变化的变量

时间:2016-03-23 14:00:56

标签: c# sql tsql sql-server-2012 ssis-2012

这是this question之前添加的内容,之前没有回复。

我遇到的问题是需要偶尔用一个父母更新一套35个子SSIS包。它们都是相同的,只是它们处理的数据不同。当我进行更改时,我删除所有子项并将它们再次粘贴到同一文件夹中,更新变量的值,告诉程序包它是哪个子程序包,因此它知道要处理哪些数据(值为1-35) 。

我的目标是找到一个解决方案,允许软件包以某种方式知道它们是谁(通过文件名,变量,配置等),以便在更新后减少维护和设置生产。

包的文件名在粘贴(packagename 1,packagename 2,.... packagename X)之后的相同文件夹中保留附加的编号值。我在SSIS 2012中使用包部署,因此我无法访问文件名作为参数,就像我使用项目部署一样。所有软件包都在SSDT解决方案中,父包调用所有35个孩子。使用程序包部署,我在SQL表中使用配置来更改从服务器升级到服务器的文件路径。

我喜欢自动化与孩子相关的其他事情,但除非我先解决这个部分,否则我不能。另外,我需要再添加15个孩子,这样可以节省很多时间。

感谢任何帮助

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用环境变量? 并使用不同的参数启动包。 Packages_with_Parameter_from_Environments

(抱歉,我不能发表评论。)

答案 1 :(得分:0)

  

使用一个父级更新一组35个子SSIS包。它们都是相同的,只是它们处理的数据不同。

您似乎不应该使用同一个包的35个不同副本作为孩子,而应该只使用参数来解决问题。

如果它们的处理方式在文件名中,您可以使用带掩码的filename参数来为每个循环使用a拉出变量,将这些参数提供给被调用的包中。如果没有,您可以将处理选项存储在sql表中,加载具有文件名和参数的选项,并使其包含所有信息,并让父包将该信息拉出并使用它来调用子包。