【问题标题】:How can i pass database name dynamically in ssis execute sql task如何在 ssis 执行 sql 任务中动态传递数据库名称
【发布时间】:2021-03-02 03:34:44
【问题描述】:

在我的服务器中有多个数据库。因此,服务器上的每个数据库都有多个连接管理器。 想在executesql任务中将数据库名称作为参数传递,这样我就可以减少连接管理器的数量。 像下面这样的东西是最可取的,

use ? 
select * from tablename 

【问题讨论】:

  • 听起来很糟糕......我猜是多个骗局的解决方案。管理器(或至少多个参数,这些参数被一个 con. manager 上的表达式解释为连接字符串)会更好......无论如何:应该可以在您的执行 sql 任务上放置一个表达式,您可以在那里构建语句,如"USE " + [parameter] + "; SELECT *..."...
  • 是的,我试过了
  • 没有任何表达方式,我们可以在任何任务的运行时配置数据库名称。我希望它不可用。
  • 不,据我所知没有其他可能性。即使使用动态 SQL 将参数传递给 SQL 任务也不会成功。

标签: dynamic ssis database-connection ssis-connection-manager


【解决方案1】:

您应该能够使用多部分数据库命名约定。 “使用数据库”只是更改连接的上下文。选择您最常使用的数据库作为默认值,然后使用以下数据库:

从databasename.schema.tablename中选择column1、column2

如果您设置链接服务器,您甚至可以跨服务器使用它。 (四部分命名)

从linkedserver.databasename.schema.tablename中选择column1、column2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 2015-09-25
    • 2017-10-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多