刷新结果集

Flush result set

我们有一个存储过程 returns 3 个不同的结果集,前两个大约需要。 1 秒,而第三个需要 20 秒以上。

当 运行 SSMS 中的 SP 在约 20 秒的初始延迟后立即显示所有 3 个结果集。

同样,从 .NET 调用时,每次调用 IDataReader#NextResult 之间没有延迟,但第一次调用 IDataReader#Read.

时会有延迟

如果我们将 SP 修改为在前 2 个结果集之后停止,那么数据会立即可用。

我们想立即开始处理前 2 组的结果,而不是等待所有 3 个结果集都准备好。

有没有办法强制 SQL 刷​​新前 2 个结果集以便立即使用它们?

..对于 ssms..

--resultsets after 5secs
select 1;
select 2;
waitfor delay '00:00:05'; -- simulate a long running query
select 3;
go
--two resultsets and the last after 5secs 
select 1;
select 2;
raiserror('', 0, 0) with nowait; -- flush results
waitfor delay '00:00:05';  -- simulate a long running query
select 3;