【发布时间】:2018-02-28 14:56:12
【问题描述】:
有一个 SQL Server 存储过程,我想在其中循环遍历从表中读取的一组选项。所以说一张桌子有100个选项。我的存储过程将遍历这些选项,并且对于每个选项,我需要做一些检查——通过根据选项查询几个特定的表并标记与之相关的状态。
我是否可以拆分 for 循环,以便在一个循环中处理第 1 -50 行,在另一个循环中处理第 51-100 行,并且我可以并行运行这两个循环?我看到了一种方法,您可以通过 SQL 作业或其他方式并行运行多个存储过程,但无法查看是否可以通过拆分 for 循环来并行执行。
【问题讨论】:
-
如果我们帮助你找到一个基于集合的解决方案,而不是做所有这些循环怎么样?那么你根本不需要循环。但是不,你不能在存储过程中做多线程,至少不能在 t-sql 中。
-
谢谢肖恩。鉴于多线程不可行,将研究逻辑以查看是否可以实施基于 Set 的逻辑
标签: sql-server loops stored-procedures foreach parallel-processing