2010-02-25 229 views
1

我可以清除存儲過程已經聚集的多個結果集,以便創建的下一個結果集成爲過程返回的第一個結果集?sql存儲過程清除結果集

+0

您使用的是什麼RDBMS? – outis 2010-02-25 15:01:03

+0

這是MS SQL 2005 – DEH 2010-02-25 19:20:35

回答

2

這取決於數據庫。在Sql Server中,一旦結果集被髮送,它就消失了。接收的應用程序/代碼必須處理它。如果您需要這樣的邏輯,請將結果收集到臨時表中,並僅返回過程結束時需要的內容。

+0

當我決定取消當前設置並返回一個不同的設置時,我仍處於proc中。所以什麼都沒有去接收器。 – DEH 2010-02-25 14:46:55

+1

就像我在回答中所說的那樣,收集所有在臨時表格中「回憶」的結果。當你的所有邏輯都確定了應該返回的內容時,你可以從你需要的任何臨時表中進行選擇。 – 2010-02-25 15:24:22

0

正如KM所說,它依賴於數據庫。你能解釋你的存儲過程如何收集多個結果集?你是通過多重聯合還是通過創建一個動態的sql語句來實現這一點?

+0

MS SQL 2005.我有一個proc,它運行幾個完全獨立的sql語句,每個語句都會將結果集添加到由proc輸出的多個結果集。在接近proc結尾的某個時刻,我想'取消'迄今爲止創建的結果集,並創建一個新的結果集,這個結果集將成爲proc輸出並由客戶端接收的唯一結果集。 – DEH 2010-02-25 15:21:12