【问题标题】:How to set database name as a variable in SSIS?如何在 SSIS 中将数据库名称设置为变量?
【发布时间】:2012-05-08 21:41:35
【问题描述】:

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

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

Select OrderID
  From ?.Order

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

【问题讨论】:

    标签: variables ssis oledbconnection


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:
      【解决方案3】:

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

      我最近录制了几个关于 SSIS 连接管理的会话 - 一个针对 2005, 2008, and 2008 R2another for 2012。我还在managing configurations in SSIS 上录制了一个会话(虽然音频很差)。

      我希望这些帮助。

      安迪

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-06
          • 2015-02-27
          相关资源
          最近更新 更多