数据库分页存储过程---equn.net
参数说明:
?tablename为搜索表名
?where为搜索表名,要显示所有记录请设为"1=1"
?orderby为搜索结果排序,如order by id desc
?curpage当前页码
?page_record每页记录条数
结果:
?返回表tablename中满足条件where的第curpage页的page_record条记录,结果按orderby排序
*/
CREATE PROCEDURE Xp_Page(@tablename varchar(50),@where varchar(100),@orderby varchar(100),@curpage int,@page_record int)
?AS
begin
?declare @cmd varchar(500)
?declare @uprecord int
?set @uprecord=@curpage * @page_record
?set @cmd=’select top ’+cast(@page_record as char)+’ * from ’+@tablename+’ where ’+@where+’ and id not in (select top ’+cast(@uprecord as char)+’ id from ’+@tablename+’ where ’+@where+’ ’+@orderby +’) ’+@orderby
?exec(@cmd)
end
GO
参数说明:
?tablename为搜索表名
?where为搜索表名,要显示所有记录请设为"1=1"
?orderby为搜索结果排序,如order by id desc
?curpage当前页码
?page_record每页记录条数
结果:
?返回表tablename中满足条件where的第curpage页的page_record条记录,结果按orderby排序
*/
CREATE PROCEDURE Xp_Page(@tablename varchar(50),@where varchar(100),@orderby varchar(100),@curpage int,@page_record int)
?AS
begin
?declare @cmd varchar(500)
?declare @uprecord int
?set @uprecord=@curpage * @page_record
?set @cmd=’select top ’+cast(@page_record as char)+’ * from ’+@tablename+’ where ’+@where+’ and id not in (select top ’+cast(@uprecord as char)+’ id from ’+@tablename+’ where ’+@where+’ ’+@orderby +’) ’+@orderby
?exec(@cmd)
end
GO
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7178747/viewspace-161522/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7178747/viewspace-161522/
本文介绍了一种使用SQL存储过程实现数据库分页查询的方法。通过定义存储过程Xp_Page,接收表名、筛选条件、排序方式、当前页码及每页记录数作为参数,返回指定页码和数量的有序记录。此方法适用于需要高效分页展示大量数据的场景。
959

被折叠的 条评论
为什么被折叠?



