在我当前的项目中,数据库名称不断变化,我不想每次都修改我的OLE DB源。因此,我想将其设置为变量。也就是说,在每个OLE DB源中,我可以将它用作参数。但是,似乎SSIS不允许将数据库名称作为参数传输。那么我该怎么做才能最大限度地减少我的变化
我希望在OLE DB Source中执行类似这样的SQL语句:
Select OrderID
From ?.Order
我只需要在更改数据库名称时修改我的变量。 感谢任何解决方案!
答案 0 :(得分:3)
您需要将包配置添加到包中,并将连接管理器的数据库名称设置为其中一个配置
右键单击控制流上的任何空白区域,然后选择“包配置”并按照向导进行操作。
我建议您从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中参数和环境主题的非常全面的博客文章。