Insert date while importing a flat file into SQL Server table

时间:2019-01-09 21:43:32

标签: sql-server ssis etl flat-file import-from-csv

I'm trying to import a flat file into SQL Server table using SSIS package. This package is scheduled to run everyday. I've already created an extra column before importing the file.

Ex:

Flat file on 01/08/2019:

001,Tony Stark,Ironman
014,Steve Rodgers, Captain America

Flat file on 01/09/2019:

414,Peter Parker, Spiderman
007,Clark Kent, Superman  

Expected result:

After importing, table should look like this on 01/08/2019

ID      Name              Alias                 Date
````    ``````            ``````                `````
001     Tony Stark        Ironman               2019-01-08  
014     Steve Rodgers     Captain America       2019-01-08  

like this on 01/09/2019

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 

2 个答案:

答案 0 :(得分:3)

You can achieve this in many ways:

1- Add Derived Column to the package

You can add a Derived Column Transformation in you Data Flow Task, and Use the [System::StartTime] variable which contains the time that the package started to run. Or you can use the GETDATE() function that returns the current date.

2- Add a default value to your added Column

You can add GETDATE() function as a default value to the column, so foreach new line inserted, the value of the current date will be assigned.

ALTER TABLE DestTable ADD CONSTRAINT DF_SomeName DEFAULT GETDATE() FOR [Date];

References

答案 1 :(得分:0)

When you go to load the csv file into mysql, load it into a new mysql table.

Then, use a table alter to create a new date column. Update that new table, setting the column to the desired date.

Then, insert the values from the new table into the final destination table, using mysql insert-select syntax.

Finally, drop the new/temporary table.