我们有一个名为ExportData的SSIS作业,它接受'ExportType'参数。 ExportType参数可以是“schedule”或“unchedule”。
我创建了名为'@ExportType'的变量并创建了SSIS配置并在配置文件中公开了变量并将其命名为'ScheduleConfig'。我复制了该文件并将值更改为“unchedule”并将其命名为“UnscheduleConfig”。
我在SQL Server 2008中创建了SSIS作业,并为“Schedule”和“Unschedule”设置了两个步骤。我为每一步附加了正确的配置文件。但无论我运行哪一步,它总是执行'Schedule'。我确定并仔细检查了配置文件和步骤。
如何使用2个不同的配置文件运行2个不同的作业?
我尝试使用SetValues方法,但它也不起作用。
答案 0 :(得分:3)
我建议你不要在SSIS配置中存储@ExportType。您可以通过添加类似于:
的SET开关来覆盖DTEXEC命令行中的值/ SET“\ Package.Variables [ExportType] .Properties [Value]”; Schedule
您可以使用上面的相同PackagePath在“设置值”选项卡上的“SQL代理集成服务作业步骤类型”中覆盖此变量值。
希望这有帮助, 安迪
答案 1 :(得分:2)
您需要两次调用包,一次使用配置文件A,一次使用配置文件B.在每个配置文件中,您将@ExportType变量设置为'schedule'和'unchedule'。
您只能设置一次参数。例如,即使您将DTEXEC与/ Config选项一起使用,也可以覆盖已设置的参数
答案 2 :(得分:2)
如果我正确理解您的要求。这是一个在SSIS 2008 R2
中创建的示例包,可以满足您的需求。该示例使用单个程序包,该程序包在两个不同的SQL代理程序作业步骤下执行,并且这两个步骤都使用相同配置文件的不同副本。配置文件包含在包内使用的变量的不同值。
SO_10177578
的示例SSIS包。在包中,创建了一个名为 ExportType
的数据类型String
的包变量。此外,将Execute SQL Task
放在“控制流”选项卡上。此任务将有助于识别传递给变量ExportType
的值。
SQLServer
。我选择对此连接管理器使用SQL Server身份验证。
dbo.ExportData
的表,其中包含以下结构。 Id
列是标识列。
SSIS
菜单 - >选中Package Configuration
选项。在“程序包配置管理器”对话框中,选中启用程序包配置复选框,然后单击添加按钮。创建了类型为XML Configuration file
的新包配置。选择了存储文件的路径。
ExportType
的值属性和连接管理器SQLServer
的 ConnectionString 属性添加到配置文件中。
SQLServer
并将 SQLStatement 属性设置为 INSERT INTO dbo.ExportData (PackageName, ExportTypeValue) VALUES (?, ?)
Test_ExportData
的新SQL作业。删除Owner
字段信息以隐藏敏感信息。
Step_01
和Step_02
的步骤。
c:\temp\SO_10177578.dtsx
中。
ExportType
的值更改为计划。将配置文件命名为ScheduleConfig.dtsConfig
。屏幕截图仅显示隐藏敏感连接字符串信息的配置文件的一部分。
c:\temp\Test\ScheduleConfig.dtsConfig.
c:\temp\SO_10177578.dtsx
中存储的相同的包。
ExportType
的值更改为取消计划。将配置文件命名为UnscheduleConfig.dtsConfig
。屏幕截图仅显示隐藏敏感连接字符串信息的配置文件的一部分。
c:\temp\Test\UnscheduleConfig.dtsConfig.
ExportData
。您可以注意到该包已执行两次,并且SQL代理作业的每个执行步骤都使用了步骤中指定的相应配置文件。
希望有所帮助。