semye-静心

积累,点点滴滴
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

分页小测试

Posted on 2007-02-14 18:16  semye  阅读(395)  评论(0编辑  收藏  举报
 1declare @PageSize int--每页的大小(行数)   
 2declare @PageCurrent int --要显示的页   从1开始 
 3set @PageSize=10
 4set @PageCurrent=11
 5create table test(
 6[id][int]IDENTITY (11)not null,
 7[name][varchar](10)null,
 8[age][int]null
 9) ON [PRIMARY]
10go
11select * from test
12declare @n int
13set @n=1
14while(@n<=100000)
15begin
16insert into test values('n'+cast(@n as varchar),@n)
17set @n=@n+1
18end
19select * from test
20
21--method1:use not in
22declare @nn int
23set @nn = @PageSize*(@PageCurrent-1)
24declare @str varchar(1000)
25set @str='select top '+cast(@PageSize as varchar)+'* from test where id not in(select top '+cast(@nn as varchar)+' id from test)' 
26--method2:use >id
27set @nn = @PageSize*(@PageCurrent-1)
28declare @str varchar(1000)
29set @str='select top '+cast(@PageSize as varchar)+'* from test where id>((select max(id) from (select top '+cast(@nn as varchar)+' id from test ) as m))'
30-------------------------------------------------------
31/*如果表没有标识列,则加个标识列*/
32-------------------------------------------------------
33--method1 
34alter table test
35add id  int identity(1,1)
36--中间操作和上面一样
37
38--update test set id=''
39Alter   table   test   Drop   column  id
40
41--method2
42select *  into #temp from test 
43alter table #temp
44add tel varchar(20null
45
46