向大家请教一个存储过程分页问题
(Sql Server 200 数据库)
大家好,向大家请教一个问题。
我的目的是想通过存储过程分页
Create table student
(
stud int identity(1,1),
name varchar(10),
)
我在存储过程里通过 Select stud, name into hello from student
产生一个结果集表 hello 。
(注:上面的查询语句没加条件,如加 name like 'aaa' 那么 stud 列就不会按
1、2、3、4、5、6、7、8、9 的顺序序列,而就不能按 stud > 5 and stud < 10 来产生
分页结果集,在这种情况下我就想通过 Alter Table Student add id identity(1,1) 产生
一个自动增长列来分页,但是 student 表中 stud 列的的标示符属性也复制到了 hello 表中
,不能再添加一个标示列了,怎么删除 hello 表中这个 stud 这个标示属性,(这个列的数据是
需要的)。
问题点数:0、回复次数:8Top
1 楼cppTrier(修炼ing~~~)回复于 2005-04-01 23:57:40 得分 0
分布不是一般用一个嵌套的Top查询来做的吗?Top
2 楼cppTrier(修炼ing~~~)回复于 2005-04-01 23:57:49 得分 0
分页...打错字了Top
3 楼fallforyou(封面)回复于 2005-04-02 11:14:48 得分 0
呵呵,路过,我还在修炼中。Top
4 楼pingfzp(☆★自由风☆★)回复于 2005-04-02 16:15:40 得分 0
Select identity(int,1,1) as stud, name into hello from student
然后就可以按stud > 5 and stud < 10 来产生分页结果集
declare @page int -- 页数
declare @pagecount int --每页记录数
set @page = 2
set @pagecount = 20
select stud,name
from hello
where stud > (pagecount*(page-1)) and stud <= (pagecount*page)
Top
5 楼pingfzp(☆★自由风☆★)回复于 2005-04-02 16:18:09 得分 0
SORRY,那两具参数不记得加@了
正确:
declare @page int -- 页数
declare @pagecount int --每页记录数
set @page = 2
set @pagecount = 20
select stud,name
from hello
where stud > (@pagecount*(@page-1)) and stud <= (@pagecount*@page)
Top
6 楼mpshun(苦行僧)回复于 2005-04-02 20:24:07 得分 0
又是一种方法,这个方法不错.Top
7 楼bust(magiczhou)回复于 2005-04-03 19:52:27 得分 0
谢谢大家了Top
8 楼pingfzp(☆★自由风☆★)回复于 2005-04-05 16:54:48 得分 0
大哥,解决了吧,结贴散分呀,呵呵~~Top




