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