首页 > 解决方案 > SSIS FOR LOOP 根据 sql 表中的值结束

问题描述

我创建了一个 SSIS 包,它有一个 for 循环。我在 SQL Server 中有一个存储包启动时间的表。以及 Remainging_Time(Minute) 列,它是倒计时(以分钟为单位)值。现在我希望 SSIS For Loop 一直运行到 Remaining_Time(Minute) 值为 0。

图片中的说明:

在此处输入图像描述

标签: sql-serverssis

解决方案


我认为你的问题有两个方面。首先,for 循环将执行一项任务,然后检查 eval 表达式。如果您的计数器实际上只是在跟踪经过的时间,那么您的时间可能会在它执行您分配的任何任务时到期。

如果您不关心该级别的精度,我会将 Remainging_Time 存储为包变量,而不是存储在数据库表中。您可以使用带有表达式的 SQL 任务来更新包变量的值,作为循环中的最后一个任务。除非有一些外部进程正在更新数据库中的该值,否则每次都必须通过循环进行数据库调用是没有意义的......如果是这种情况,那并不是真正的 for 循环,更多的是一个while循环,在这种情况下我会做一个脚本任务而不是一个for循环并处理你想要在那里做的任何事情。

让我知道这是否有意义。如果我对您正在尝试做的事情有更多了解,我可以添加更多详细信息。


推荐阅读