希望這很簡單。我正在優化一個返回約500行以上的存儲過程。我的計劃是批量返回行,直到沒有更多的行獲得。如何從SQL Server存儲過程返回行和變量
例如,我會得到0-49行 - 那麼50-99,然後100-149,等等..
我使用下面的SQL代碼來實現這一點:
CREATE PROCEDURE [dbo].[mySP]
@rowstart int,
@rowend int
AS
WITH MainQuery AS
(
HUGE SELECT STATEMENT HERE
)
select * from MainQuery where row between @rowstart and @rowend
當我執行這個SP,我簡單地傳遞在rowstart和rowend值,它將返回我想要完美的行的範圍。
問題是,我想知道每個查詢後都有更多的行。我認爲我可以通過在MainQuery塊完成後返回@@ ROWCOUNT來完成該操作,但是我不知道如何在每次執行SP後獲取返回的行的範圍和@@ ROWCOUNT的值。
當我做出返回50行的初始查詢時,如果我可以知道有503個TOTAL錶行,我可以做一些簡單的數學計算(503/50)並計算出需要多少次調用SP。任何幫助表示讚賞!
這是一個尋呼類型需要? - 即你並不總是需要503行? – 2011-01-12 00:42:01