SSIS如何从configuration文件dynamic设置连接string
我正在SQL Server业务智能开发工作室中使用SQL Server集成服务(SSIS)。
我需要做一个如下的任务。 我必须从源数据库读取并将其放到目标平面文件中。 但同时源数据库应该是可configuration的。
这意味着在OLEDB连接pipe理器中,连接string应该dynamic改变。 这个连接string应该来自configuration/ XML /平面文件。
我读过,我可以使用variables和expression式dynamic地改变连接string。 但是,如何从configuration/ XML /平面文件中读取连接string值并设置variables?
这部分我无法做到。 这是实现这个目标的正确方法吗? 我们可以添加web.config文件到SSIS项目吗?
首先添加一个variables到你的SSIS包(Package Scope) – 我使用了FileName,OleRootFilePath,OleProperties,OleProvider。 每个variables的types是“string”。 然后我创build一个configuration文件(select每个variables – 值) – 填充configuration文件中的值 – 例如:OleProperties – Microsoft.ACE.OLEDB.12.0; for OleProperties – Excel 8.0; HDR =,OleRootFilePath – 您的Excel文件path,FileName – FileName
在连接pipe理器 – 然后我dynamic设置属性 – >expression式 – >连接stringexpression式例如:
“Provider =”+ @ [User :: OleProvider] +“Data Source =”+ @ [User :: OleRootFilePath] + @ [User :: FileName] +“; Extended Properties = \”“+ @ [User :: OleProperties] +”NO \“”+“;”
这样,一旦设置了variables值并将其更改到configuration文件中,连接string就会dynamic变化 – 这有助于从开发环境迁移到生产环境。
一些选项:
-
运行包之前,可以使用“ 执行包实用程序”来更改数据源。
-
您可以使用DTEXEC运行您的软件包,并通过传递/ CONNECTION参数来更改连接。 大概把它保存为一个批处理,所以下次你不需要input整个东西,只需根据需要更改数据源即可。
-
您可以使用SSIS XML 包configuration文件。 这是一个漫步 。
-
您可以将您的configuration保存在数据库表中。
以下是您应该使用的一些机制背景,称为程序包configuration: 了解Integration Services程序包configuration 。 本文介绍了5种types的configuration:
- XMLconfiguration文件
- 环境variables
- registry项
- 父包variables
- SQL Server
下面是在Connection Manager上设置configuration的演练: SQL Server集成服务SSIS包configuration – 我意识到这是使用连接string(不是一个好主意)的环境variables,但基本相同,使用XML文件。 在漫游中,您必须更改的唯一步骤是configurationtypes,然后是path。
转到打包属性 – >configuration – >启用打包configuration – >添加 – > xmlconfiguration文件 – >指定dtsconfig文件 – >点击下一步 – >在OLEDB属性勾选连接string – >连接string值将显示 – >点击下一步完成包因此被configuration。
你也可以在这个过程中添加环境variables
这些答案是正确的,但老,适用于Depoloyement Package Model
。 我实际上需要的是更改服务器名称,连接pipe理器的数据库名称,我发现这非常有用:
https://www.youtube.com/watch?v=_yLAwTHH_GA
对于使用SQL Server 2012-2014-2016 …的人来说,更适合Deployment Project Model