Sql-Server-2012
如何在儲存過程完成之前獲得響應?
我需要在儲存過程完成之前返回部分結果(作為簡單的選擇)。
有可能這樣做嗎?
如果是,該怎麼做?
如果沒有,有什麼解決方法嗎?
編輯:我有幾個部分的程序。在第一部分中,我計算了幾個字元串。我稍後會在過程中使用它們來進行額外的操作。問題是呼叫者盡快需要字元串。所以我需要計算該字元串並將其傳回(以某種方式,例如從選擇中),然後繼續工作。呼叫者更快地獲得其有價值的字元串。
呼叫者是一個 Web 服務。
您可能正在尋找
RAISERROR
帶有該NOWAIT
選項的命令。根據評論:
RAISERROR 可用作 PRINT 的替代方法,將消息返回給呼叫應用程序。
這不會從
SELECT
語句返回結果,但它會讓您將消息/字元串傳遞回客戶端。如果您想返回您選擇的數據的快速子集,那麼您可能需要考慮FAST
查詢提示。指定查詢已針對第一個 number_rows 的快速檢索進行了優化。這是一個非負整數。返回第一個 number_rows 後,查詢繼續執行並生成完整的結果集。
Shannon Severance在評論中添加:
來自Erland Sommarskog的 SQL Server 中的錯誤和事務處理:
但請注意,某些 API 和工具可能會在其一側緩衝,從而抵消
WITH NOWAIT
.有關完整上下文,請參閱源文章。