2010-03-23 91 views
39

我在SQL Server Business Intelligent Development Studio中使用SQL Server Integration Services(SSIS)。SSIS如何从配置文件中动态设置连接字符串

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

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

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

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

回答

10

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

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

这里设置的演练建立连接管理器上的配置:SQL Server Integration Services SSIS Package Configuration - 我意识到这是我们为连接字符串创建一个环境变量(这不是一个好主意),但基本功能与使用XML文件相同。在漫游中,您必须更改的唯一步骤是配置类型,然后是路径。

26

一些选项:

  1. 可以使用Execute Package Utility改变你的数据源,运行包之前。

  2. 您可以使用DTEXEC运行包,并通过传递/ CONNECTION参数来更改连接。大概将它保存为一个批次,以便下次不需要键入整个事物并根据需要更改数据源。

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

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

+3

4.您可以将您的配置保存在数据库表中。 – HLGEM 2010-03-23 21:39:19

+0

在[了解集成服务包配置](http://msdn.microsoft.com/zh-cn/library/cc895212.aspx) – 2016-11-16 20:31:48

29

首先添加一个变量到你的SSIS包(Package Scope) - 我使用了FileName,OleRootFilePath,OleProperties,OleProvider。每个变量的类型是“字符串”。然后我创建一个配置文件(选择每个变量 - 值) - 填充配置文件中的值 - 例如:OleProperties - Microsoft.ACE.OLEDB.12.0; OleProperties - Excel 8。0; HDR =,OleRootFilePath - 您的Excel文件路径,文件名 - 文件名

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

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

这样一旦您可以设置变量值并将其更改为您的配置文件 - 连接字符串将会动态更改 - 这有助于从开发环境迁移到生产环境。

+1

中介绍了5种配置类型。谢谢,这是最佳演练。 – Sky 2013-01-10 20:26:41

2

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

您还可以添加环境变量在这个过程中

0

这些答案是正确的,但老工程Depoloyement Package Model。 我真正需要的是改变服务器名称,连接管理器的数据库名称,我发现这非常有帮助:

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

更好地为使用SQL Server 2012-2014-2016人......与Deployment Project Model

相关问题