分页存储过程
时间:2011-05-11 来源:zhxhdean
本存储过程没有返回总记录数
ALTER PROCEDURE dbo.pro_getListByPage
(
@tbname VARCHAR(30),--表名称
@fldname VARCHAR(20),--自动增加列
@column VARCHAR(200),--返回列
@pagesize INT,--每页显示条数
@pageindex INT,--当前页数
@where VARCHAR(300),--不带where的条件
@orderby VARCHAR(200),--排序字段
@orderbytype VARCHAR(5)--排序类型asc,desc
)
AS
DECLARE @sqlstr VARCHAR(2000)
DECLARE @strOrder VARCHAR(250)
DECLARE @strTmp VARCHAR(50)
---数据
IF @orderbytype = 'desc'
begin
SET @strOrder = ' order by '+@fldname+' desc'
set @strTmp ='<(select min'
end
ELSE
begin
SET @strOrder =' order by '+@fldname+' asc'
set @strTmp ='>(select max'
end
--当前为第一页
IF @pageindex = 1
SET @sqlstr = 'select top '+str(@pagesize) +' '+@column +' from ' +@tbname + ' where ' + @where +' order by ' + @orderby+' '+ @orderbytype
ELSE
set @sqlstr='select top '+str(@pagesize) +' '+@column+ ' from '+@tbname+' where [' +@fldname +']'
+@strTmp+'([' + @fldname +']) from (select top '+str((@pageindex-1)*@pagesize) +' ['+@fldname +'] from ['
+@tbname+'] where ' + @where + ' ' +@strOrder +') as tblTmp) and ' + @where+' ' + @strOrder
EXEC(@sqlstr)
相关阅读 更多 +
排行榜 更多 +