有一个SQL Server存储过程,我想循环遍历从表中读取的一组选项。所以说一张桌子有100个选项。我的存储过程将循环遍历这些选项,对于每个选项,我需要进行一些检查 - 通过查询基于选项的几个特定表并标记与其相关的状态。
我是否可以拆分for循环,以便在一个循环中处理第1行-50,在另一个循环中处理第51-100行,并且我能够并行运行这两个?我看到了一种方法,您可以通过SQL作业或其他方式并行运行多个存储过程,但无法通过拆分来查看是否可以通过并行执行for循环。
答案 0 :(得分:0)
将您的问题视为学术问题,而不是考虑是否存在基于集合的解决方案,因为没有足够的信息可以做到这一点。
不能使用标准TSQL在单个循环中(或在两个单独的循环中)执行此操作,因为TSQL是同步的。即使您“拆分”循环,第二个过程调用也无法启动,直到第一个调用完成。它们不会并行运行。
要并行运行两个循环,您必须引入其他语言。 this search的结果出现了不少想法,但我看到的前几个有很多关于陷阱和意外结果的警告。如果你想试验其中任何一个,由你决定。