我有一个SSIS包,其中包含一个到"SQL Server 1"的OLE DB连接管理器,以及来自本地计算机D磁盘的平面文件管理器。
该包基本上是从我正在使用的机器的 D 磁盘中检索数据,并通过一系列带有 SQL 任务的循环容器将其发送到"SQL Server 1"。这一切都完全正常。
挑战在于我想将完全相同的包部署到"SQL Server 2"。"SQL Server 2"中的所有文件、表等以及"SQL Server 2"所在的本地计算机的 D 磁盘中的文件完全相同。但是,我不知道该怎么做。
如果我将 OLE DB 连接管理器更改为"SQL Server 2",则一切正常,因为 SQL 任务会自动选择唯一存在的连接。尽管如此,关键是以某种方式动态地做到这一点。
这意味着将"SQL Server 1"和"SQL Server2"作为OLEDB连接管理器,并将相同的SSIS项目部署到两个服务器(现在它仅部署到"SQL Server 1")。
我在"项目 - 属性"下创建了一个新配置,该配置选择了"SQL Server 2"作为部署的服务器名称。最初,只有一个存在,当然有"SQL Server 1"作为部署服务器。我知道这还不够,但不知道还能做什么。
目标是将相同的包部署到 Server1 和 Server2,任何帮助将不胜感激。谢谢
可以使用表达式动态更改 OLEDB 连接管理器连接字符串属性:
- 如何在 SSIS 中将变量用于 OLE DB 连接
- SSIS 如何从配置文件动态设置连接字符串
可以添加变量或项目参数,并在包执行时传递连接字符串。有关更多详细信息,您可以参考以下文章之一:
- 在 SQL Server Integration Services 中参数化数据库连接
- 使用 SSIS 环境变量在运行时参数化连接和值
答案在我找到的链接(发布在末尾)中有详细说明,并逐步解释了如何执行我想要的操作,即通过使连接字符串动态化将 SSIS 包部署到不同的服务器:
- SQL Server Integration Services 中的安装环境变量
基本上是遵循5个步骤(再次,在链接中详细说明):
创建项目参数- 并使用项目参数配置项目的连接管理器
- 将项目部署到 SQL 服务器中的 SSIS 目录
- 在 SSIS 目录中创建环境以及变量
- 使用参数将环境链接到项目和变量
- 使用环境执行包