今天上午,又研究了分页,其实,以前做过很多遍了,呵呵,现在把它贴出来,供大家研究,希望大家多指出问题。这个分页为了执行效率,没有用传统的IN嵌套查询。速度还是相当快哦。关于,分页的重要性和应用,我就不再多说了,呵呵,学过WEB编程的人都知道!
过程如下:
![]()
Code
create proc page
@tbname varchar(10),
@fldname varchar(20),
@getfldname varchar(50),
@pageindex int=1,
@pagesize int=10,
@count int output,
@strwhere varchar(50),
@ordertype int=0
as
declare @strtemp Nvarchar(200),@query varchar(300),@order varchar(30),@str varchar(30)
set @strtemp='select @count=count(*) from '+@tbname+' where '+@strwhere
exec sp_executesql @strtemp,N'@count int output',@count output
if(@ordertype=0)
begin
set @order=' order by '+@fldname+' asc '
set @str=' >(select max('
end
else
begin
set @order=' order by '+@fldname+' desc '
set @str=' <(select min('
end
if(@pageindex=1)
set @query='select top '+str(@pagesize)+' '+@getfldname+' from '+@tbname+' where '+@strwhere+@order
else
begin
set @query='select top '+str(@pagesize)+' '+@getfldname+' from '+@tbname+' where '+@fldname+@str+@fldname+') from (select top '+str((@pageindex-1)*@pagesize)+' '+@fldname+' from '+@tbname+' where '+@strwhere+' '+@order+' ) as t) and '+@strwhere+' '+@order
end
exec(@query)