有2种不同配置下运行SSIS包(Run SSIS Package with 2 Different

2019-09-16 13:51发布

我们有一个叫做ExportData一个SSIS作业,并将其接受“ExportType”参数。 该ExportType参数可以是“时间表”或“取消调度”。

我创建了一个名为“@ExportType”变量,并创建了SSIS配置和暴露在配置文件中的变量,并把它称为“ScheduleConfig”。 我复制该文件,并改变价值“取消调度”,并把它称为“UnscheduleConfig”。

我创建了SSIS作业在SQL Server 2008中,并设置了2步两个“日程”和“取消调度”。 我重视每一个步骤的正确配置文件。 但我无论跑一步,它始终执行“日程”。 我相信和双重检查的配置文件和步骤。

我怎么可以运行2个不同的配置文件2个不同的工作吗?

我没有使用setValues方法将尝试,并没有工作过。

Answer 1:

如果我正确理解您的需求。 这里是创建了一个示例包SSIS 2008 R2和做你在找什么。 该示例使用一个单一的包,这是在两个不同的SQL代理作业步骤执行,并且两者中的步骤使用相同的配置文件的不同的副本。 配置文件持有不同的值的包内所使用的变量。

  • 创建了一个名为样本SSIS包SO_10177578 。 内包,创建名为包变量ExportType数据类型的String 。 另外,放置在Execute SQL Task控制流选项卡上。 这项任务将有助于确定传递给变量的值ExportType

  • 新增的OLE DB连接到样本数据库,并命名为连接, SQLServer 。 我选择使用SQL Server身份验证此连接管理器。

  • 在SQL数据库,创建了一个名为表dbo.ExportData用下面的strucutre。 Id列是一个标识列。

  • 该表不包含任何数据开始。 该表将与数据执行包时进行填充。

  • 在SSIS包,点击在SSIS菜单- >选择Package Configuration选项。 在包配置管理器对话框中,选中启用包配置复选框,并单击添加按钮。 创建类型的新包配置XML Configuration file 。 选择保存文件的路径。

  • 增加了变量的属性ExportType和连接管理器的ConnectionString属性SQLServer配置文件。

  • 在执行SQL任务,选择的连接SQLServer和设置的SQLStatement属性INSERT INTO dbo.ExportData (PackageName, ExportTypeValue) VALUES (?, ?)

  • 同时配置的参数,以适当的变量上的封装。 现在,包已准备好部署。

  • 在数据库服务器上的SQL Server代理节点,创建了一个名为新的SQL工作Test_ExportDataOwner字段信息被删除隐藏敏感信息。

  • 在SQL作业的步骤页面,创建了一个名为两步Step_01Step_02

  • 步骤1被配置为在下面的包被存储在路径c:\temp\SO_10177578.dtsx

  • 复制使用包包配置文件创建并改变该变量的值ExportType 附表 。 命名的配置文件作为ScheduleConfig.dtsConfig 。 屏幕截图显示仅配置文件来隐藏敏感连接字符串信息的一部分。

  • 在作业的步骤1中,称为从路径新创建的包的配置文件c:\temp\Test\ScheduleConfig.dtsConfig.

  • 步骤2的构成如下,它使用存储在路径相同的包c:\temp\SO_10177578.dtsx 13759步骤1。

  • 复制使用包包配置文件创建并改变了值的变量ExportType取消调度 。 命名的配置文件作为UnscheduleConfig.dtsConfig 。 屏幕截图显示仅配置文件来隐藏敏感连接字符串信息的一部分。

  • 在作业的步骤2中,称为从路径新创建的包的配置文件c:\temp\Test\UnscheduleConfig.dtsConfig.

  • 现在,这两个步骤进行配置。 执行新的SQL代理作业。

  • 查询的表ExportData 。 你可以注意到包已执行两次,并在SQL代理作业的每一个步骤的执行中使用的台阶上指定相应的配置文件。

希望帮助。



Answer 2:

我建议你不要@ExportType存储在SSIS配置。 可以通过添加一个SET开关类似于覆盖从DTEXEC命令行上的值:

/ SET “\ Package.Variables [ExportType]的.properties [值]”;计划

您可以使用上述相同packagepath的在SQL代理集成服务作业步骤类型来覆盖这个变量值的设定值标签。

希望这有助于,安迪



Answer 3:

你不能做到这一点。 在SSIS不会读取新的配置。

你需要调用封装两次,一次与配置文件A和一个时间配置文件B.在每个配置文件,您将有@ExportType变量设置为“时间表”和“取消调度”。

你只能设置一个参数一次。 即使您使用DTEXEC与例如/配置选项,你不能覆盖已经设置的参数



文章来源: Run SSIS Package with 2 Different Configurations