使用 SSIS 包将日期时间戳列添加到最终目标表

Posted

技术标签:

【中文标题】使用 SSIS 包将日期时间戳列添加到最终目标表【英文标题】:Add Datetime Stamp Column to End Destination Table using SSIS Package 【发布时间】:2020-06-10 19:21:33 【问题描述】:

我有一个 SSIS 包,可将 CSV 文件导入数据库,并且在将新行附加到表底部并且目标中没有 datetime 列时,该包将每天运行表。

我想要做的是在目标表中创建一个新的date/timestamp,并且每次加载数据时我都希望该表反映来自数据库Timestamp的加载时间。

我不确定如何实现这一目标。

【问题讨论】:

【参考方案1】:

如果您将插入标记添加到默认为 getdate 的表中,数据库将为您处理:

alter table destionationtable add [InsertStamp] [DATETIME]  NOT NULL CONSTRAINT [DF_Insert]  DEFAULT (GETDATE())

【讨论】:

【参考方案2】:

更改您的目标表以包含新列,并使用您选择的日期时间函数的默认值。

ALTER TABLE DataDest
ADD CreateDate DATETIME 
CONSTRAINT DF_DataDest_CreateDate DEFAULT (GETDATE());

在您的包中,您可能需要打开数据流中的目标对象以获取表的新元数据,然后您必须单击“映射”选项卡,因为 SSIS 必须是像那样。新列应该会显示在那里,但您不需要对它做任何事情,只要确保 SSIS 知道它就在那里。

在您的插入操作期间,SSIS 不会加载该列,并且将为您填充当前日期时间的默认值。

【讨论】:

以上是关于使用 SSIS 包将日期时间戳列添加到最终目标表的主要内容,如果未能解决你的问题,请参考以下文章

动态 SSIS 包将 N 个表从 Oracle 加载到 SQL

ssis 空日期作为空值

如何遍历 Excel 文件并使用 SSIS 包将它们加载到数据库中?

使用 SSIS 在 DB2 表中设置时间戳列

SSIS 包将文件从一个文件夹移动到 SFTP (WinSCP) 中的另一个文件夹(SSIS 的 SFTP 任务)

用于添加时间到日期的 ssis 表达式