3

我在 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]

4

2 回答 2

2

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

如果要执行此操作,请创建完整的 SQL,然后使用 sp_executesql 执行它,尽管就良好实践而言,在变量中包含表看起来并不那么好......

于 2019-05-10T07:57:07.570 回答
1

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

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

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

更多信息在:

于 2019-05-11T23:30:13.653 回答