在文件夹中导入最新的csv文件 - SSIS

时间:2012-09-04 08:39:06

标签: sql-server sql-server-2005 ssis etl

我想使用SSIS将最新的csv文件导入表中?我目前有一个步骤可以获取文件夹中的最后一个文件:

 Report_201209030655.csv
 Report_201209030655.csv
 Report_201209030655.csv

根据创建的时间,我想要步骤将最新csv的数据导入表格。

1 个答案:

答案 0 :(得分:0)

参考此解决方案:

[http://blog.sqlauthority.com/2011/05/12/sql-server-import-csv-file-into-database-table-using-ssis/][1]

然后使用脚本任务填充文件名,并将该变量作为源组件的文件名传递。

获取最新的文件代码:

   public void Main()
        {
            string[] files = System.IO.Directory.GetFiles(@"C:\SSIS\Files");
            DataTable NewList=new DataTable();
            DataColumn col = new DataColumn("FileName");
            NewList.Columns.Add(col);

            System.IO.FileInfo finf;
            foreach (string f in files)
            {
                finf = new System.IO.FileInfo(f);
                if (finf.LastWriteTime > DateTime.Now.AddHours(-24))
                {
                    NewList.Rows.Add(f);
                }
            }
            Dts.Variables["User::FileNameArray"].Value = NewList;

            Dts.TaskResult = (int)ScriptResults.Success;
        }