SSIS如何从配置文件动态设置连接字符串

时间:2010-03-23 05:59:04

标签: ssis connection-string configuration-files

我在SQL Server Business Intelligent Development Studio中使用SQL Server Integration Services(SSIS)。

我需要做一个如下任务。我必须从源数据库中读取并将其放入目标平面文件中。但同时源数据库应该是可配置的。

这意味着在OLEDB连接管理器中,连接字符串应该动态更改。此连接字符串应取自配置/ XML /平面文件。

我读到我可以使用变量和表达式动态更改连接字符串。但是如何从config / XML / flat文件中读取连接字符串值并设置变量?

这部分我无法做到。这是实现这一目标的正确方法吗?我们可以将web.config文件添加到SSIS项目吗?

5 个答案:

答案 0 :(得分:30)

首先向SSIS包添加一个变量(包范围) - 我使用了FileName,OleRootFilePath,OleProperties,OleProvider。每个变量的类型是“string”。然后我创建一个配置文件(选择每个变量 - 值) - 填充配置文件中的值 - 例如:for OleProperties - Microsoft.ACE.OLEDB.12.0; for OleProperties - Excel 8.0; HDR =,OleRootFilePath - 您的Excel文件路径,FileName - FileName

在连接管理器中 - 我然后设置属性 - >以下词组>动态连接字符串表达式,例如:

"Provider=" + @[User::OleProvider] + "Data Source=" + @[User::OleRootFilePath]
+ @[User::FileName]  + ";Extended Properties=\"" + @[User::OleProperties] + "NO \""+";"

这样一旦你设置变量值并在配置文件中更改它 - 连接字符串将动态改变 - 这尤其有助于从开发环境转移到生产环境。

答案 1 :(得分:26)

一些选项:

  1. 在运行程序包之前,您可以使用Execute Package Utility更改数据源。

  2. 您可以使用DTEXEC运行程序包,并通过传入/ CONNECTION参数来更改连接。可能将其保存为批处理,以便下次您不需要输入整个内容,只需根据需要更改数据源。

  3. 您可以使用SSIS XML package configuration文件。这是walk through

  4. 您可以将配置保存在数据库表中。

答案 2 :(得分:10)

以下是您应该使用的机制的一些背景知识,称为包配置:Understanding Integration Services Package Configurations。 本文介绍了5种配置:

  • XML配置文件
  • 环境变量
  • 注册表项
  • 父包变量
  • SQL Server

以下是在Connection Manager上设置配置的演练:SQL Server Integration Services SSIS Package Configuration - 我确实意识到这是为连接字符串使用环境变量(不是一个好主意),但基本知识与使用XML文件。您必须在该演练中更改的唯一步骤是配置类型,然后是路径。

答案 3 :(得分:2)

转到包属性 - >配置 - >启用包配置 - >添加 - > xml配置文件 - >指定dtsconfig文件 - >单击下一步 - >在OLEDB属性中勾选连接字符串 - >将显示连接字符串值 - >单击下一步,然后配置完成包。

您也可以在此过程中添加环境变量

答案 4 :(得分:0)

这些答案是正确的,但旧的并适用于Depoloyement Package Model。 我实际需要的是更改服务器名称,连接管理器的数据库名称,我发现这非常有用:

https://www.youtube.com/watch?v=_yLAwTHH_GA

对于使用SQL Server 2012-2014-2016的用户Deployment Project Model

更好