sql code
功能:生成测试数据.
create table Test_paging(
id int identity(1,1) not null primary key,
TestNumber int not null,
TestName varchar(20) not null,
TestDept varchar(10) not null,
TestDate datetime not null
with tep(Number,Name,Dept,Date) as
select 1,cast('0_testname' as varchar(20)),cast('0_DBA' as varchar(10)),getdate()
union all
select Number+1,cast(cast(Number as varchar(20))+'_testname' as varchar(20)),cast(cast(Number/500 as varchar(10))+'_DBA' as varchar(10)) ,getdate()
from tep
where Number<=20000000
insert into Test_paging(TestNumber,TestName,TestDept,TestDate)
select Number,Name,Dept,Date from tep option(maxrecursion 0)
--添加索引(我有测试没有索引的情况,2012的优势更加明显,但是我们的数据库不可能不建索引的,故可忽略没有索引的情况)
create nonclustered index IX_TestDept on Test_paging(
TestDept
) include
TestName,TestDate
@total int --总行数
select @page=20,@size=10,@total=count(1) from Test_paging where TestDept = '1000_DBA'
select
TestName,TestDept,TestDate,@total
Test_paging
where
TestDept = '1000_DBA'
order by id offset (@page-1)*@size rows fetch next @size rows only
set statistics io off
set statistics time off
set statistics profile off
@total int
select @page=20,@size=10,@total=count(1) from Test_paging where TestDept = '1000_DBA'
select TestName,TestDept,TestDate,@total from
select
TestName,TestDept,TestDate,row_number() over(order by ID) as num
Test_paging
where
TestDept = '1000_DBA'
) test where num between (@page-1)*@size+1 and @page*@size order by num
set statistics io off
set statistics time off
set statistics profile off
SQL code
功能:测试2000版本中top分页.
dbcc dropcleanbuffers
dbcc freeproccache
set statistics io on
set statistics time on
set statistics profile on
declare
@page int, --第@page页
@size int, --每页@size行
@total int --总行数
select @page=20,@size=10,@total=count(1) from Test_paging where TestDept = '1000_DBA'
select TestName,TestDept,TestDate,@total from
select top(@size) id,TestName,TestDept,TestDate from
select top(@page*@size) id,TestName,TestDept,TestDate
from Test_paging
where TestDept = '1000_DBA'
order by id
)temp1 order by id desc
)temp2 order by id
set statistics io off
set statistics time off
set statistics profile off
原文:http://bbs.csdn.net/topics/390941777