@startIndex INT ,--每页的开始记录的索引
@pageSize INT --每页记录数
AS
--取出记录总数 插入@RecordCountTable临时表
declare @RecordCountTable table(RecordCount int)
insert into @RecordCountTable SELECT count(*) AS RecordCount FROM InOut_InOut_InOutBed
--直接用
begin
select * from
(
SELECT row_number() OVER (ORDER BY InOutBedID DESC)AS Row,*
from
InOut_InOut_InOutBed
LEFT JOIN
@RecordCountTable ON 1=1
)
as
TemporaryTable
where
row between @startIndex and @startIndex+@pageSize-1
end
或者:
ALTER PROCEDURE [dbo].[a_Example]
@startIndex INT ,--每页的开始记录的索引
@pageSize INT --每页记录数
AS
--取出记录总数 插入@RecordCountTable临时表
declare @RecordCountTable table(RecordCount int)
insert into @RecordCountTable SELECT count(*) AS RecordCount FROM InOut_InOut_InOutBed
--虚拟视图
begin
--取出内容 每行左连记录总数 虚拟视图orderList
WITH orderList AS
(
SELECT row_number() OVER (ORDER BY InOutBedID DESC)AS Row,*
from InOut_InOut_InOutBed
LEFT JOIN @RecordCountTable ON 1=1
)
--取出虚拟视图orderList中分页内容
SELECT *
FROM orderlist
WHERE row between @startIndex and @startIndex+@pageSize-1
end