看不懂你的存储过程,似乎没必要那么麻烦。如果数据不大,对分页页部要求很严格,查找行号 @f 到 @t 之间的记录:
'select * from (select top '+cast(@t-@f+1 as varchar) * from (select top '+cast(@t as varchar)+' * from Allenterprise WHERE '+ @strSearch+'order by area) order by area desc) order by area'

解决方案 »

  1.   

    to:  w_rose(w_rose)
    数据量很大.有1百万哦,存储过程不是比普通的sql语句快的多吗.
    想你学习,触发器,索引视图这些我都不动.
    msn:[email protected]
    如果要分页,并且数据特别多,你要用触发器或者带索引的视图在原始数据之外再建一个映射数据,其中已经将页号计算好了。
      

  2.   

    说一个用法,存储过程只能减少SQL的运算编译时间和直接在数据库里运行而减少网络流量。对于加快查询速度,你必须要建立Index。如何建,请参考
    http://expert.csdn.net/Expert/topic/1651/1651892.xml?temp=.7371179