所以我在SSIS中使用SCD变换,默认情况下设置开始日期时,它的当前日期很好。但是我想要做的初始加载是将所有新记录设置为2008-01-01,然后在此之后的任何内容将成为当前日期。
我该怎么做?
答案 0 :(得分:0)
在您的数据流任务之前使用执行SQL任务并运行类似于此的查询以查看您的目标表是否为空(初始加载) - IF(SELECT count(1)FROM [Table]。[Destination])> 0 开始 选择0作为TableEmpty 结束 其他 开始 选择1作为TableEmpty END
将查询结果存储在布尔变量中 - isTableEmpty。
现在,在SCD之后和新输出的插入目标之前的数据流任务中,使用派生列任务 - DerivedBeginDate,其表达式具有以下逻辑。 (isTableEmpty)(DT_DBDATE)" 2008-01-01":BeginDateFromSCD
将DerivedBeginDate映射到Insert Destination中的列。
希望这会有所帮助。祝你好运。