【问题标题】:Not able to recognize a table variable in ssis sp无法识别 ssis sp 中的表变量
【发布时间】:2019-05-10 07:44:05
【问题描述】:

我在 ssis 中创建了一个名为 Vpop_summary_table 的变量。

我已经在 sql 语句中使用了这个变量。

我的变量

Vpop_summary_table

预期会提供价值

[dbo].[2019-02-02_pop_table]

ssis 没问题。

DECLARE @Vpop_summary_table VARCHAR(100)


    SET  @Vpop_summary_table= ?
    SELECT 
          ,[Age Range]
          ,[Gender]
         ,[2023 Population]
     INTO [@Vpop_summary_table]
      FROM [dbo].[2018_Population_Table_CLARITAS]

我的表创建为[@Vpop_summary_table] 而不是[dbo].[2019-02-02_pop_table]

【问题讨论】:

  • 无法从变量中引用对象名称(表、列、数据库、函数等)。为此,您必须使用动态 SQL。

标签: sql-server ssis ssis-2012 execute-sql-task


【解决方案1】:

表名和列名需要是静态的。

如果您想这样做,请创建完整的 SQL,然后使用 sp_executesql 来执行它,尽管从良好实践的角度来看,在变量中包含表看起来并不那么好......

【讨论】:

    【解决方案2】:

    您不能将表名作为参数传递,您必须使用表达式来实现:

    打开执行 SQL 任务编辑器,转到表达式选项卡,为 SQLStatementSource 属性添加一个表达式,如下所示:

    "SELECT 
           [Age Range]
          ,[Gender]
          ,[2023 Population]
     INTO " + @[User::Vpop_summary_table] + "
     FROM [dbo].[2018_Population_Table_CLARITAS]"
    

    更多信息请访问:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 2021-02-27
      • 2013-05-15
      • 2018-11-12
      • 1970-01-01
      • 2019-12-17
      相关资源
      最近更新 更多