我们有一个叫做ExportData一个SSIS作业,并将其接受“ExportType”参数。 该ExportType参数可以是“时间表”或“取消调度”。
我创建了一个名为“@ExportType”变量,并创建了SSIS配置和暴露在配置文件中的变量,并把它称为“ScheduleConfig”。 我复制该文件,并改变价值“取消调度”,并把它称为“UnscheduleConfig”。
我创建了SSIS作业在SQL Server 2008中,并设置了2步两个“日程”和“取消调度”。 我重视每一个步骤的正确配置文件。 但我无论跑一步,它始终执行“日程”。 我相信和双重检查的配置文件和步骤。
我怎么可以运行2个不同的配置文件2个不同的工作吗?
我没有使用setValues方法将尝试,并没有工作过。
如果我正确理解您的需求。 这里是创建了一个示例包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_ExportData
。 Owner
字段信息被删除隐藏敏感信息。
- 在SQL作业的步骤页面,创建了一个名为两步
Step_01
和Step_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代理作业的每一个步骤的执行中使用的台阶上指定相应的配置文件。
希望帮助。
我建议你不要@ExportType存储在SSIS配置。 可以通过添加一个SET开关类似于覆盖从DTEXEC命令行上的值:
/ SET “\ Package.Variables [ExportType]的.properties [值]”;计划
您可以使用上述相同packagepath的在SQL代理集成服务作业步骤类型来覆盖这个变量值的设定值标签。
希望这有助于,安迪
你不能做到这一点。 在SSIS不会读取新的配置。
你需要调用封装两次,一次与配置文件A和一个时间配置文件B.在每个配置文件,您将有@ExportType变量设置为“时间表”和“取消调度”。
你只能设置一个参数一次。 即使您使用DTEXEC与例如/配置选项,你不能覆盖已经设置的参数