2016-03-28 103 views
1

存儲過程何時返回結果集的規則是什麼?存儲過程什麼時候返回結果集

如果我在底部附近添加一個SELECT語句,它將作爲另一個結果集返回。

但我在開頭添加了一個SELECT,然後它不返回結果集中。

在什麼情況下會返回SELECT作爲結果集?如果後面跟着其他語句,它似乎不會被返回,哪些?

+2

你可以發佈一個SELECT語句不返回的例子嗎? – David

+1

如果你有一個「正常的」SELECT語句(不是從結果中設置**變量**,而只是選擇數據)它會**返回給調用者 –

+0

有時你有時會說有多個返回的結果集?你的存儲過程在'select'語句之後做了什麼?什麼程序被交還給結果? (這是很重要的知道,因爲他們分析的方式取決於調用應用程序的結果有所不同) –

回答

0

作爲結果,存儲過程返回最後的SELECT

它不包括select into或設置使用select

你可以做一些技巧使用UNION結果廣告中使用的輔助場以分離的結果返回類型的多個結果的變量。

看看到multiple result in stored procedure

2

存儲過程可以返回多個結果集。

如果您正在使用像asp.net這樣的前端應用程序使用存儲過程,則可能需要遍歷結果集集合以查看全部內容。

存儲過程中其他語句阻止SELECT語句返回結果的唯一方法是,如果它們阻止它被執行。 (類似於IF...ELSE塊或RETURN命令會停止執行等)

因此,要回答「規則是什麼?」,規則是,如果SELECT語句完全得到執行,並且它返回結果完全設置,那麼它將返回一個結果集。