6

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

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

Select OrderID
  From ?.Order

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

4

4 回答 4

3

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

在此处输入图像描述

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

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

于 2012-05-09T09:09:16.963 回答
0

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

我最近记录了一些关于 SSIS 连接管理的会话 - 一个用于2005、2008 和 2008 R22012 年的另一个。我还录制了一个关于在 SSIS 中管理配置的会话(尽管音频很差)。

我希望这些帮助。

安迪

于 2012-05-09T02:10:05.943 回答
0

查看这篇关于如何参数化数据库名称的精彩帖子。这是一篇关于 SSIS 中的参数和环境主题的非常详尽的博客文章。

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

于 2017-06-13T17:58:00.767 回答