如何在SSIS中将数据库名称设置为变量?

时间:2012-05-08 21:41:35

标签: variables ssis oledbconnection

在我当前的项目中,数据库名称不断变化,我不想每次都修改我的OLE DB源。因此,我想将其设置为变量。也就是说,在每个OLE DB源中,我可以将它用作参数。但是,似乎SSIS不允许将数据库名称作为参数传输。那么我该怎么做才能最大限度地减少我的变化

我希望在OLE DB Source中执行类似这样的SQL语句:

Select OrderID
  From ?.Order

我只需要在更改数据库名称时修改我的变量。 感谢任何解决方案!

4 个答案:

答案 0 :(得分:3)

您需要将包配置添加到包中,并将连接管理器的数据库名称设置为其中一个配置

enter image description here

右键单击控制流上的任何空白区域,然后选择“包配置”并按照向导进行操作。

我建议您从XML配置开始,因为它更容易理解。

答案 1 :(得分:0)

答案 2 :(得分:0)

我喜欢在连接管理器上管理Server \ Instance.Database,在任务或适配器级别管理Schema.Table或View。我建议外部化连接管理器连接字符串。您可以使用程序包配置执行此操作,也可以自行管理(我使用带有ConnectionName和ConnectionString列的表,并加密ConnectionString列)。在我看来,SSIS包中的硬编码数据库名称不是最佳实践。

我最近录制了几个关于SSIS连接管理的会议 - 一个用于2005, 2008, and 2008 R2; another for 2012。我还在managing configurations in SSIS录制了一个会话(尽管音频很差)。

我希望这些帮助。

安迪

答案 3 :(得分:0)

查看关于如何参数化数据库名称的这篇了不起的帖子。这是一篇关于SSIS中参数和环境主题的非常全面的博客文章。

http://www.sqlchick.com/entries/2015/1/4/parameterizing-connections-and-values-at-runtime-using-ssis-environment-variables