希望这很简单。我正在优化一个返回约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