在SSIS中将单行拆分为多行

时间:2010-09-08 11:46:52

标签: sql sql-server-2008 ssis

给定格式输入(当前是平面文件):

名称,StartDate,EndDate

包含样本数据

彼得,2010-09-01,2010-09-04

我想知道我可以使用哪个SSIS任务将这一行拆分成每天一行: 彼得,2010-09-01 彼得,2010-09-02 彼得,2010-09-03 彼得,2010-09-04

我知道我可以用脚本任务完成它,但我认为可能有内置的东西?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

当我需要拆分行时,我使用了多播,但是我有一定数量的行(即将一行划分为三行)。

在你的情况下,我会使用脚本组件。

如果不想在SSIS中编写脚本,您也可以将数据写入SQL表,并编写自己的SQL存储过程以返回所需的行。

也许你也可以用SELECT语句来做。只需用SQL提出相同的问题:

“如何在SQL中选择两个日期之间的所有日期”

详细信息多播

  1. 将多播连接到数据源
  2. 将输出拖动到“添加列”
  3. 在添加列中添加表达“startdate +1”
  4. 的表达式
  5. 重复将多播中的下一个输出连接到一个新的“添加列”,在那里你做startdate + 2
  6. 使用“union”
  7. 加入所有添加列输出

    这种方式只有在日期之间的最大持续时间很短的情况下才有效,如果你有40天你需要40次多重演员。