根据SSIS中的数据内容识别重复文件

时间:2016-05-01 11:43:38

标签: sql-server ssis ssis-2012 ssis-2008

我将文件存到共享位置。每个文件都有不同的元即。文件名,创建日期。

当且仅当文件内容与先前处理的文件不同时,我必须使用SSIS提取数据。

2 个答案:

答案 0 :(得分:1)

这应该是相当简单的 -

  1. 使用配置为ForEach设置的For Each File容器。 Folder name将是共享位置。 File Name应该是通配符(例如,* .csv)
  2. 在SQL中创建一个名为LoadedFiles的表,它将保存已加载文件的名称。请注意,在创建ForEach容器时,您还会创建一个包含文件名的变量。现在在ForEach容器中,检查此变量中的值是否已存在于LoadedFiles表中。如果没有,则仅加载。
  3. 我假设所有文件都具有相同的元数据(列名和数据类型)。即使他们不这样做,你也可以采用相同的逻辑。

    此外,如果不明显,为此,您需要在每次决定加载文件时在LoadedFiles表中插入一个新行。

    编辑:似乎相同的文件名不等于OP的相同内容。在这种情况下,他应该只在SQL表上执行MERGE而不是盲目插入。

    主键上的{p> MERGEIF MATCHED不执行任何操作INSERT

答案 1 :(得分:0)

我得到了解决方法

SSIS执行进程任务,我调用了FC.exe

http://www.howtogeek.com/206123/how-to-use-fc-file-compare-from-the-windows-command-prompt/