2013-06-20 105 views
0

我有一种情况,我想处理SSIS包中的文件,但只包含新文件,并且只包含与特定文件名模式匹配的文件。访问SSIS中的WMI查询结果

是否有可能通过循环遍历WMI查询的结果来使用WMI来实现此任务?

WMI数据读取器任务似乎是最接近的竞争者,但它只能将其结果写入文件(而不是数据库表或内存中的记录集)。

有没有人有这样做的成功?

回答

0

如果您想使用WMI Data Reader Task,那么最简单的解决方案就是将结果保存到文件中。添加一个读取文件并将数据插入数据库的数据流任务。

然而,另一种解决办法是这样的:

  1. 添加Foreach LoopForeach File Enumerator,您可以使用表达式为文件名的模式。
  2. 过程如果你被允许移动的文件,然后使用一个File System Task将文件移动到其他文件夹,这样就不会被再次处理在Data Flow Task
  3. 的文件。

如果你不能移动文件,那么你需要一些其他的方式来确定文件是否已经被处理。如果您只需要监视新文件而不是修改文件,那么您可以保存数据库中已处理哪个文件的记录,或者添加脚本任务以检查文件的修改日期并将其与最近处理的日期进行比较来自数据库。

+0

您的建议,即写入文件然后读取该文件,似乎是最常见的建议。我觉得很奇怪,SSIS不会提供其他方式来存储WMI任务的结果集(例如,将其存储在内存中的记录集或数据库表中),但是在那里你去.. – Rowan

+0

我不确定if使用WMI任务是正确的方法。什么是选择WMI的理由? – JodyT