sql-server - 在 ADO.NET 源编辑器中使用动态表名称

标签 sql-server ssis etl sql-server-data-tools ssis-2012

我有一个 SSIS 数据流任务,正在尝试使用 ADO.NET 源编辑器将源表中的数据加载到 SQL Server 表中。

问题:

源表名称是动态的,取决于当前日期。

Example: If I want to load today's data then the table name would be Sample_03292017_data and if loading tomorrow's data then it would be Sample_03302017_Data.

我做了一些研究,发现如何将参数传递到 ADO.NET 源代码编辑器以在 where 条件中使用 但我找不到任何有关如何在表名称中使用此参数的信息。

有谁知道我怎样才能实现这个目标?我的查询非常简单:

select * from Sample_[DateParameter]_Data.

我正在使用 Visual Studio Data Tools 2010。

最佳答案

必须在数据流任务上设置表达式,而不是在Ado.net源中设置

按照以下步骤为 Ado.net 源 设置表达式:

  1. 控制流选项卡中,单击数据流任务,然后按F4显示属性选项卡
  2. 点击表达式按钮,会出现如下所示的表单

enter image description here

  • 选择[Ado.net Source].sqlcommand 属性并单击表达式生成器按钮
  • enter image description here

  • 编写以下表达式 "select * from Sample_ "+ @[User::DateParameter] + "_Data" (假设您的数据参数存储在名为 的变量中日期参数)
  • enter image description here

    关于sql-server - 在 ADO.NET 源编辑器中使用动态表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43102019/

    相关文章:

    sql - 如何从 SSIS Power Query 源结果集中更新 SQL 表

    oracle - 如何将大表从 oracle db 到 hdfs?

    mysql - 如何通过每天和每周定义的层次结构汇总事件类型(使用 SQL 或 ETL)

    mysql - MySQL 到 SQL Server over WAN 的 ETL 机制

    python - 如何使用petl转换表中的值

    javascript - Breeze Sequelize 与 MSSQL 可能吗?

    sql - 选择记录日期 > 每行的日期

    sql - 从存储过程执行SQL Server代理作业并返回作业结果

    sql - Insert into Select 未正确插入相同的数据顺序

    sql-server - SSIS FOR LOOP根据sql表中的值结束