如何为使用SSIS插入的每一行添加时间戳?

时间:2016-05-19 11:13:11

标签: visual-studio-2008 ssis bids

我继承了一个SSIS项目,它通过FTP下载一些文件,将它们解压缩成一些奇怪的专有格式,然后将它们插入到一个小型数据仓库中。我现在需要为每条记录添加一个时间戳。我对SSIS很新 - 但是看到很多人使用派生列任务来处理这类事情。

到目前为止,我已在数据库的表中添加了datetime2(2)列,添加了派生列任务并将其连接到我的包中的目标。我检查映射中的目标,并确保它显示在那里并映射。

当我执行此程序包时,我只在时间戳列中看到NULLS。

这是我的派生专栏: enter image description here

我也不确定何时在包中进行更改,我是否只需要点击“保存”以确保当SQL作业运行包时我的更改将被执行? SSIS包没有“发布”/“部署”类型的东西,对吧?这是一个侧面问题,但也可能是相关的?我不知道......

2 个答案:

答案 0 :(得分:0)

我的回答:如果麻烦,不要通过SSIS这样做。在目标表的新列上添加默认的GETDATE()。无需以这种方式更改SSIS包,每次都保证列中的数据。

答案 1 :(得分:0)

我想不出派生列不起作用的任何原因。话虽这么说,测试它的一种方法可能是在它之间添加一个脚本组件,该组件写入DB中的另一列或excel文件。查看它是否会被流经它的每条记录触发。

脚本组件很简单: Row.ColumnName = DateTime.Now;

这会与派生列做同样的事情,虽然稍微增加了开销。