5

我有一个 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 Server 2”都用作 OLEDB 连接管理器,并将相同的 SSIS 项目部署到两个服务器(现在它仅部署到“SQL Server 1”)。

我在项目 - 属性下创建了一个新配置,其中选择了“SQL Server 2”作为部署的服务器名称。原来只有一个,当然有“SQL Server 1”作为部署服务器。我知道这还不够,但不知道还能做什么。

目标是将相同的包部署到 Server1 和 Server2,任何帮助将不胜感激。谢谢

4

2 回答 2

2

您可以使用表达式动态更改 OLEDB 连接管理器 connectionstring 属性:

您可以添加变量或项目参数并在包执行时传递连接字符串。有关更多详细信息,您可以参考以下文章之一:

于 2019-04-09T18:40:38.440 回答
1

答案在我找到的链接中有详细说明(最后发布),并逐步解释了如何做我想做的事情,即通过使连接字符串动态化来将 SSIS 包部署到不同的服务器:

基本上是遵循5个步骤(再次,在链接中详细说明):

  1. 创建项目参数并使用项目参数配置项目的连接管理器
  2. 将项目部署到 SQL Server 中的 SSIS 目录
  3. 在 SSIS 目录中创建环境以及变量
  4. 将环境链接到项目和带有参数的变量
  5. 使用环境执行包
于 2019-04-10T14:28:26.493 回答