SqlServer 2000的分页查询存储过程,该如何处理

SqlServer 2000的分页查询存储过程
本帖最后由 bartholomew4 于 2015-08-03 10:55:55 编辑
1.所有表没有主键,不管是单主键,还是联合组建,也没有ID这个字段.......
2.表没有什么索引,这个其实倒是无所谓的
3.何查询语句都可能查出来2条或以上记录,其实就是条件1的升级版。。。。
4.不能变更原有的表设计,如果想新建表并且导数据的必须要做到100%的数据实时同步,并且不能影响原有的cha|||入效率
5.因为项目原因,不能使用视图



要求存储过程可以做到,传入一个sql查询语句(可能是一个多表关联的查询),每页显示条数,查询页号,返回当页信息,总条数,总页数(第一个是必须要的,后面2个如果不方便就算了),要求执行时间小于10秒,数据量很小,大概是100W条的数据中查询(有关联查询的笛卡尔积结果条数不大于1KW)。



------解决思路----------------------


select  top 每页显示条数  * from  tbl  as t
where not exist
(
  select 1 from 
    (
      select top (每页显示条数*页号) * from tbl) as a 
      where a.字段1 =t.字段1  and   a.字段2 =t.字段2 
      and  a.字段3 =t.字段3  and   a.字段4 =t.字段4 
      and  ......
    )
)



將传入的SQL语句替代 tbl 表