在我当前的项目中,数据库名称不断变化,我不想每次都修改我的 OLE DB 源。因此,我想将其设置为变量。也就是说,在每个 OLE DB 源中,我都可以将其用作参数。但是,似乎 SSIS 不允许将数据库名称作为参数传输。那么我应该怎么做才能最小化我的变化呢?
我希望在 OLE DB Source 中执行类似这样的 SQL 语句:
Select OrderID
From ?.Order
而且我只需要在更改数据库名称时修改我的变量。感谢您提供任何解决方案!
在我当前的项目中,数据库名称不断变化,我不想每次都修改我的 OLE DB 源。因此,我想将其设置为变量。也就是说,在每个 OLE DB 源中,我都可以将其用作参数。但是,似乎 SSIS 不允许将数据库名称作为参数传输。那么我应该怎么做才能最小化我的变化呢?
我希望在 OLE DB Source 中执行类似这样的 SQL 语句:
Select OrderID
From ?.Order
而且我只需要在更改数据库名称时修改我的变量。感谢您提供任何解决方案!
您需要将包配置添加到您的包中,并将连接管理器的数据库名称设置为配置之一
只需右键单击控制流上的任何空白区域并选择“包配置”并按照向导进行操作。
我建议您从 XML 配置开始,因为它更容易理解。
我喜欢在连接管理器中管理 Server\Instance.Database,在任务或适配器级别管理 Schema.Table 或 View。我建议外部化连接管理器连接字符串。您可以使用包配置来执行此操作,也可以自己管理它(我使用带有 ConnectionName 和 ConnectionString 列的表,并加密 ConnectionString 列)。在我看来,SSIS 包内的硬编码数据库名称不是最佳实践。
我最近记录了一些关于 SSIS 连接管理的会话 - 一个用于2005、2008 和 2008 R2;2012 年的另一个。我还录制了一个关于在 SSIS 中管理配置的会话(尽管音频很差)。
我希望这些帮助。
安迪
查看这篇关于如何参数化数据库名称的精彩帖子。这是一篇关于 SSIS 中的参数和环境主题的非常详尽的博客文章。