z7369 发表于 2016-11-4 04:15:42

基于sql server 2005 分页的存储过程

alter   procedure proGetAll
(
@sort varchar(10),         //升序还是降序
@fromTable varchar (20),   //哪一个表
@pageIndex int,            //第几行
@pageSize int,             //每页显示多数行
@pageBy varchar (20)    //根据哪一字段排序
)
as
begin
declare @sql nvarchar(max);
set @Sql='select * from (select (row_number() over('+@sort+' by '+@pageBy+')-1)/'+convert(varchar(20),@pageSize)+' as rowId, * from '+@fromTable+') a where rowId='+convert (varchar(20),@pageIndex)+'';
print @Sql;
exec sp_executesql @sql;
end

//测试         升序    用户表第一页每页3行排序字段
exec proGetAll 'order','users','1','3','userid'
页: [1]
查看完整版本: 基于sql server 2005 分页的存储过程