SQL Server脚本以特定间隔读取许多csv文件并插入记录

时间:2013-03-31 16:39:37

标签: sql-server sql-server-2008 sql-server-2008-r2

我有一些csv文件。我想编写SQL Server脚本以在特定时间段读取文件并插入SQL Server数据库中,如果找不到记录,如果调度程序先前已经读过文件,则忽略它。每个csv只包含一个记录。

像:

1.csv => John,2000,2012/12/12
2.csv => Tom,3000,2012/12/11

如果有人可以提供脚本示例,那就太好了。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果我是你,我会创建一个使用多文件输入的SSIS包。此输入允许您从目录中的每个文件中提取数据。

以下是SSIS包的基本步骤。

  1. 检查“working”目录中是否有任何文件。如果没有结束包裹。
  2. 将“working”目录中的每个文件移动到“staging”目录  您将这样做,以便当您在包中时,如果其他文件出现在“工作”目录中,您将不会丢失它们。
  3. 读取“staging”目录中的所有文件。使用带有多文件输入的数据流。
  4. 读取完成后,将所有文件移至a “备份”目录。  这当然假设您出于某种原因想要保留它们。您可以轻松地从“登台”目录中删除它们。
  5. 完成包后,使用SQL Server代理安排它,以便在您感兴趣的任何时间间隔运行包。