Sql-Server-2012

如何在儲存過程完成之前獲得響應?

  • October 6, 2016

我需要在儲存過程完成之前返回部分結果(作為簡單的選擇)。

有可能這樣做嗎?

如果是,該怎麼做?

如果沒有,有什麼解決方法嗎?

編輯:我有幾個部分的程序。在第一部分中,我計算了幾個字元串。我稍後會在過程中使用它們來進行額外的操作。問題是呼叫者盡快需要字元串。所以我需要計算該字元串並將其傳回(以某種方式,例如從選擇中),然後繼續工作。呼叫者更快地獲得其有價值的字元串。

呼叫者是一個 Web 服務。

您可能正在尋找RAISERROR帶有該NOWAIT選項的命令。

根據評論

RAISERROR 可用作 PRINT 的替代方法,將消息返回給呼叫應用程序。

這不會從SELECT語句返回結果,但它會讓您將消息/字元串傳遞回客戶端。如果您想返回您選擇的數據的快速子集,那麼您可能需要考慮FAST查詢提示。

指定查詢已針對第一個 number_rows 的快速檢索進行了優化。這是一個非負整數。返回第一個 number_rows 後,查詢繼續執行並生成完整的結果集。

Shannon Severance在評論中添加:

來自Erland Sommarskog的 SQL Server 中的錯誤和事務處理:

但請注意,某些 API 和工具可能會在其一側緩衝,從而抵消WITH NOWAIT.

有關完整上下文,請參閱源文章。

引用自:https://dba.stackexchange.com/questions/132673