如何创建t-sql来加载下n个记录?

Mic*_*orn 7 c# sql t-sql sql-server pagination

我需要一个创建t-sql查询的示例来加载接下来的10条记录(取决于网格中的默认行数).

同样的linq必须跳过行.

因此,例如我有100K的结果,我需要在100和110记录之间加载10,依此类推.这个想法是让它的页面加载速度非常快

我还需要为我的网格构建分页,所以我需要知道总共有多少条记录

Ale*_*Aza 7

在MS SQL 2005/2008中,您可以执行类似的操作

with cte
as
(
    select row_number() over (order by ID) RowNumber, *
    from MyTable
) 
select *
from cte
where RowNumber between 10 and 20
Run Code Online (Sandbox Code Playgroud)

[编辑]使用总计数列

select *
from
(
    select
        row_number() over (order by ID) RowNumber, 
        count(*) over() TotalRowCount,
        *
    from MyTable
) tt
where RowNumber between 10 and 20
Run Code Online (Sandbox Code Playgroud)