我将文件存到共享位置。每个文件都有不同的元即。文件名,创建日期。
当且仅当文件内容与先前处理的文件不同时,我必须使用SSIS提取数据。
答案 0 :(得分:1)
这应该是相当简单的 -
ForEach
设置的For Each File
容器。 Folder name
将是共享位置。 File Name
应该是通配符(例如,* .csv)LoadedFiles
的表,它将保存已加载文件的名称。请注意,在创建ForEach
容器时,您还会创建一个包含文件名的变量。现在在ForEach
容器中,检查此变量中的值是否已存在于LoadedFiles
表中。如果没有,则仅加载。我假设所有文件都具有相同的元数据(列名和数据类型)。即使他们不这样做,你也可以采用相同的逻辑。
此外,如果不明显,为此,您需要在每次决定加载文件时在LoadedFiles
表中插入一个新行。
编辑:似乎相同的文件名不等于OP的相同内容。在这种情况下,他应该只在SQL表上执行MERGE
而不是盲目插入。
MERGE
和IF MATCHED
不执行任何操作INSERT
答案 1 :(得分:0)
我得到了解决方法
SSIS执行进程任务,我调用了FC.exe
http://www.howtogeek.com/206123/how-to-use-fc-file-compare-from-the-windows-command-prompt/