有没有办法在SSIS中的Dataflow中执行T-SQL代码?

时间:2009-05-08 01:08:16

标签: sql tsql ssis business-intelligence

背景

我有一个维度表,每天都有一条记录。每条记录都有一个主键,因此示例数据为:

Dimension Table
---------------

---------------------------------
| ID   | DateTime               |
---------------------------------
| 1083 | 04/10/2008 10:02:00 PM |
---------------------------------

我要做的是获取具有SQL日期时间值(例如04/10/2008 10:02:00 PM)的源数据列,并让SSIS派生维度表中的主键应该是什么(1083在上面的例子中)。我试图将其放入我的包中的数据流中,并避免使用临时表。

我想在数据流期间调用数据库函数让我的SSIS包发现timeid datetime条记录。我曾尝试使用DeriveColumn,但似乎不允许使用T-SQL;而只是内置于ANSI SQL中的函数。

问题

在数据流中是否有另一种方法可以做到这一点?或者我是否需要使用登台表并使用数据流外部的SQLTask来操纵我的数据?

1 个答案:

答案 0 :(得分:5)

如果我了解你,你有一个带有时间维度的数据集市,你需要获得与特定时间相对应的timeId。

如果这是正确的,那么您想要使用Lookup组件。对于参考表,使用类似SELECT timeId, timeStamp FROM TimeDimension的内容,然后查看保存时间戳的输入列。使用timeId作为输出列,现在数据流中的每一行都将具有与其时间戳对应的timeId。