【发布时间】:2020-05-10 19:57:38
【问题描述】:
如何在 MS SQL 计算过程中返回过程的部分结果?假设由于waitfor delay 或内部有一个巨大的查询,计算一个过程需要很多时间。但我想显示在整个过程结束之前已经计算的结果。
在下面的示例中,我希望在 5 秒过去之前看到“1”作为部分结果,我可以看到“2”作为最终结果。
CREATE PROCEDURE #Proc
AS
BEGIN
SELECT 1 AS PartialResult;
WAITFOR DELAY '00:00:05'
SELECT 2 AS FinalResult;
END;
EXEC #Proc;
【问题讨论】:
-
这能回答你的问题吗? Yield Return equivalent in SQL Server
-
SQL 不是这样工作的。如果 SP 很慢,也许您需要对其进行性能调整。
-
@Cid,我不这么认为。我希望同时看到 1 和 2,只是我希望在 2 开始计算之前看到 1。
-
@musialmi 然后将其拆分为 2 个过程,并调用第一个,然后调用第二个
-
为什么要这样做?这是向应用程序呈现数据吗?如果是这样,您可以查看分页,因此您不会返回这么大的集合。
标签: sql-server