【发布时间】:2018-12-18 17:45:26
【问题描述】:
我一直在尝试使用 For Each Item 循环使用多种方法提取文件列表(VB 脚本,通过平面文件连接直接用于每个循环,甚至执行用于 cmd 行扫描的进程任务)。
我注意到,当我启用数据查看器时,我倾向于多次列出同一个文件。
这对于 SSIS/For each 循环是否常见?
此外,当我尝试将此列表导入 SQL 表时(在过滤掉重复项后),我只收到了部分被清点的文件列表。
我必须假设递归到我的变量存在问题,导致变量在多个“通过”中保存相同的文件/路径。
变量
【问题讨论】:
-
你确定循环正在这样做吗?尝试禁用循环内的所有内容,并添加一个脚本任务,该任务会弹出一个显示变量值的消息框...我还将在引用该变量的函数上弹出一个消息框 - 确保它也在每次迭代时更新。
-
我为每个循环添加了一些中断 - 当循环完成每个循环时,变量会发生变化并且似乎匹配。不过我只看了前10个左右...
-
你可能需要在包中展示更多你正在做的事情。我从未使用函数来访问变量,但如果你说它正在更新,我相信你。我没有看到任何突出的东西会导致变量通过迭代成为静态...您可以尝试只使用变量两次而不是函数。
-
抱歉,如果我之前的回答引起了任何混淆。 @DaveCullum 是正确的,索引从 0 开始,如下所述:docs.microsoft.com/en-us/sql/integration-services/… 此外,他建议对
Execute SQL Task中的两个参数使用相同的变量是正确的。 -
我将删除该功能并进行测试。我相信我之前尝试过,结果相同,但我会仔细检查。
标签: sql-server recursion ssis