Sql server 将平面文件导入SQL Server表时插入日期

Sql server 将平面文件导入SQL Server表时插入日期,sql-server,ssis,etl,flat-file,import-from-csv,Sql Server,Ssis,Etl,Flat File,Import From Csv,我正在尝试使用SSIS包将平面文件导入SQL Server表。此程序包计划每天运行。在导入文件之前,我已经创建了一个额外的列 例: 2019年8月1日的平面文件: 001,Tony Stark,Ironman 014,Steve Rodgers, Captain America 2019年9月1日的平面文件: 414,Peter Parker, Spiderman 007,Clark Kent, Superman 预期结果: 导入后,2019年8月1日的表格应如下所示 ID N

我正在尝试使用SSIS包将平面文件导入SQL Server表。此程序包计划每天运行。在导入文件之前,我已经创建了一个额外的列

例:

2019年8月1日的平面文件:

001,Tony Stark,Ironman
014,Steve Rodgers, Captain America
2019年9月1日的平面文件:

414,Peter Parker, Spiderman
007,Clark Kent, Superman  
预期结果:

导入后,2019年8月1日的表格应如下所示

ID      Name              Alias                 Date
````    ``````            ``````                `````
001     Tony Stark        Ironman               2019-01-08  
014     Steve Rodgers     Captain America       2019-01-08  
像2019年9月1日这样

ID      Name              Alias                 Date
````    ``````            ``````                `````
001     Tony Stark        Ironman               2019-01-08  
014     Steve Rodgers     Captain America       2019-01-08 
414     Peter Parker      Spiderman             2019-01-09
007     Clark Kent        Superman              2019-01-09 

当您将csv文件加载到mysql中时

然后,使用创建一个新的日期列。新表,将列设置为所需日期

然后,使用mysql语法将新表中的值插入到最终的目标表中


最后,删除新的/临时表。

您可以通过多种方式实现这一点:

1-将派生列添加到包中

您可以在数据流任务中添加派生列转换,并使用
[System::StartTime]
变量,该变量包含包开始运行的时间。或者可以使用返回当前日期的
GETDATE()
函数

2-向添加的列添加默认值

您可以将
GETDATE()
函数作为默认值添加到列中,因此对于插入的每一行,都将指定当前日期的值

ALTER TABLE DestTable ADD CONSTRAINT DF_SomeName DEFAULT GETDATE() FOR [Date];
参考资料


您很好地解释了来源和预期结果,但。。。你得到了什么?@入侵者问题是什么?@入侵者从你的个人资料看,你问了很多问题,但没有回答或接受答案!!!谢谢我在创建表时使用默认的GETDATE()。因此,每次插入记录时,它都会将当前日期写入该列。