SQL Server - 这是分页的好例子

时间:2012-03-12 19:28:15

标签: sql sql-server asp.net-mvc sql-server-2008 tsql

  

可能重复:
  What is the best way to paginate results in MS SQLServer

我正在构建存储过程,当需要时,它应该从数据库表返回给我前15行。

在用户操作上,我需要加载下一个15并在每个用户操作上加载15行。

此表有效可能非常大(超过1.000.000行)。

我是这样做的。我只是想确定我这样做是对的:

@m_HospitalId int,
@m_Id int
AS
SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY CreatedOnDate ) AS RowNum, *
          FROM      dbo.Items
          WHERE     ItemId >= @m_Id
        ) AS RowConstrainedResult
WHERE   HospitalId = @m_HospitalId AND RowNum > 1 AND RowNum < 15
ORDER BY RowNum

我第一次使用ROW_NUMBER()功能,我不确定我是否做得对。

我是否总是需要传递我收到的最后一个ID才能获得下一个15项。

在应用程序中,当我收集了15个项目时,我处理了这个项目,我将{15}项目ID存储在Session中,而来自session的值我将通过以获得下一个项目。

0 个答案:

没有答案