SSIS参数化连接字符串

时间:2014-08-28 13:18:45

标签: ssis ssis-2012

我正在尝试为单个软件包usinig项目部署设置部署过程,以便VS2012。我发现要改变服务器上的dynamicaly连接字符串,我可以参数化连接,所以我做了这个并创建了环境,我用inviroment运行我的包,其中connnections字符串作为参数,所有似乎都很好,但为什么连接管理器我仍然可以看看开发时做的一些旧设置?我该如何删除它?

enter image description here

1 个答案:

答案 0 :(得分:3)

通过参数化,我假设您使用“配置”部分来全局配置项目/包或基于每个执行。这与使用项目/包参数

形成对比

我在部署文件夹中创建了一个名为ConnectionStrings的SSIS环境变量,它有两个值:ServerName和CatalogName。

我右键单击了我的项目DeployMe,然后选择了Configure。在屏幕截图中,您已单击特定包并选择了“配置”。或者您手动更改了Scope下拉列表。

enter image description here

我首先点击References并添加指向我的环境的指针

enter image description here

返回Parameters标签,我点击连接管理器,然后我将配置CM_Project连接管理器的ServerName属性以使用我的环境变量' s ServerName值。清楚吧?

enter image description here

配置ServerName后,我还配置了InitialCatalog属性,但我没有使用环境变量的值,而是使用了"编辑值"选项(上面)来设置它。最终结果是我的属性现在看起来像这样。

  1. 下划线表示它是根据环境变量
  2. 设置的
  3. 粗体文字表示手动设置。
  4. enter image description here

    现在,当我通过代理或手动执行来运行我的软件包时,它首先要提示我的是环境参考。我已经丢失了我对InitialCatalog的粗体,但是下划线仍然是ServerName属性。尽管如此,两者都是不同的值,我执行它,他们会选择正确的值。

    enter image description here

    所有这一切,我发现只存储整个ConnectionString值要容易得多。如果采用这种方法,您将观察到ServerName显示的值将显示您的设计时值,但这很好,因为ConnectionString作为一个整体将在运行时覆盖各个值。

    我知道这是一个通用的答案,但我希望我能逐步找到你所缺少的东西。