/*
数据库分页存储过程,支持倒序和升序
参数说明:
@tablename:为搜索表名
@tablefield:为表的字段,约定为表的主键,
@where:为搜索表名,要显示所有记录请设为"1=1"
@orderby:为搜索结果排序,如order by id desc
@fieldlist:为字段列表,如userid, username
@curpage:当前页码
@page_record:每页记录条数
@Sort:排序标识(如果是倒序排,参数值为desc,为升序,参数值为asc,跟orderby参数是对应的)
结果: 返回表tablename中满足条件where的第curpage页的page_record条记录,结果按orderby排序
*/
CREATE PROCEDURE proc_CommonPaging
@tablename varchar(100),
@tablefield varchar(20),
@where varchar(5000),
@orderby varchar(500),
@fieldlist varchar(1000),
@curpage int,
@page_record int,
@sort varchar(8)
AS
BEGIN
DECLARE @cmd varchar(8000)
DECLARE @uprecord int
DECLARE @Op varchar(2) -- 操作符
DECLARE @max_min varchar(4) -- 最大/最小计算
SET @op = '<'
SET @max_min = 'MIN'
IF @sort = 'asc'
BEGIN
SET @Op = '>'
SET @max_min = 'MAX'
END
SET @uprecord=@curpage * @page_record
IF @curpage = 0
SET @cmd = 'SELECT TOP '+cast(@page_record AS NVARCHAR)+' '+@fieldlist+' FROM '+@tablename+' WHERE '+@where+' '+@orderby
ELSE
SET @cmd = 'SELECT TOP '+cast(@page_record AS NVARCHAR)+' '+@fieldlist+' FROM '+@tablename+' WHERE '+@where+' AND '+@tablefield+'
'+@op+' (SELECT '+@max_min+'('+@tablefield+') FROM (SELECT TOP '+cast(@uprecord AS NVARCHAR)+' '+@tablefield+' FROM '+@tablename+' WHERE
'+@where+' '+@orderby+') AS TmpTbl ) AND '+@where+' '+@orderby
SET @cmd = @cmd + '; SELECT COUNT(*) FROM '+@tablename+' WHERE '+@where
EXEC(@cmd)
PRINT(@cmd)
END
GO
相关推荐
Server2005/2008专用高效分页存储过程(支持多字段排序).
关于分页存储过程的资料很多,我就不多说了,Google一下你就知道了。也发一个存储过程,方便大家。性能还算可以吧,支持多表查询,多字段排序,但是必须主键唯一,要是哪位兄弟有支持主键重复的,请告之。 思路说明...
描述部分进一步阐述了存储过程的功能特性:“无论那个表,表中有多少字段都可以用这一个存储过程,包括按什么字段,哪个字段排序以及有什么样的条件,都可以用这一个存储过程。若没有排序字段及条件则为null。” 这...
### Server2005高效分页存储过程详解 在数据库应用开发中,高效地处理大量数据的查询结果是一项重要的技术需求。特别是在Web应用程序中,为了提高用户体验,避免服务器因加载大量数据而产生的性能问题,分页显示...
### 万能分页存储过程知识点详解 ...“万能分页存储过程”提供了一种灵活高效的分页查询方式,适用于多种应用场景。通过对存储过程的深入了解和合理使用,可以有效提升数据库查询性能,满足不同业务需求。
本文将详细解析"经典的分页、排序SQL 通用存储过程"所涉及的知识点,并给出如何实现这样的存储过程。 首先,分页是数据库查询中的一种优化策略,用于限制每次查询返回的结果数量,从而避免一次性加载大量数据导致的...
### 带排序的Oracle分页存储过程 在开发Web应用程序的过程中,分页是一个非常常见的需求。为了提高系统的性能及可维护性,采用存储过程来实现分页逻辑是一种较为推荐的做法。下面将详细介绍如何利用Oracle数据库中...
SQL Server 分页存储过程是一种在数据库中实现高效数据分页查询的方法。在大型数据集的展示中,分页是必不可少的,因为它允许用户逐步浏览数据,而不是一次性加载所有记录,从而提高用户体验并减少服务器负载。以下...
一个典型的分页存储过程可能包括以下参数:开始行号、每页显示的行数、排序字段及排序方式(升序或降序)。例如,创建一个名为`usp_GetPagedSortedData`的存储过程: ```sql CREATE PROCEDURE usp_...
本篇介绍的通用分页存储过程主要应用于需要对数据进行分页展示的场景中,比如网站或应用中的新闻列表、产品列表等。通过该存储过程,可以在数据库层面对数据进行高效的分页处理,减轻前端页面处理数据的压力,提高...
根据提供的标题、描述以及部分代码内容,我们可以提炼出关于“千万数量级分页存储过程”的关键技术知识点,并对其进行详细的解析。 ### 一、千万数量级数据处理背景 在现代数据库应用中,随着数据量的不断增长,...
在"Oracle分页存储过程.txt"中,可能包含了一个自定义的存储过程,该过程接受参数如页码和每页记录数,然后根据这些参数动态构建SQL语句。存储过程的优势在于可以封装复杂的逻辑,提高代码复用性,减少网络传输的...
此存储过程支持自定义表名、字段列表、过滤条件、排序字段以及排序方式等参数,灵活性较高,适用于大多数分页场景。 #### 参数详解 1. **@TableList**:类型为`varchar(200)`,用于指定查询时返回的列名。默认值为...
### 几款通用的SQL分页存储过程:深入解析与应用 在数据库操作中,分页查询是一项常见的需求,尤其当数据量庞大时,合理的分页可以极大地提高查询效率和用户体验。本文将深入分析两款通用的SQL分页存储过程,分别...
使用游标实现的sql2000可用分页存储过程,不要增加排序字段
### SQL多表分页存储过程解析 #### 标题与描述概述 该存储过程主要针对SQL Server 2005/2000环境下的多表分页查询进行了实现,并且已在SQL环境下测试通过。其核心功能是为用户提供一种灵活且高效的多表分页查询...
通过传递不同的参数,用户可以灵活地控制查询行为,例如指定表名、字段列表、排序方式、每页显示记录数等。 ### 参数说明 - `@tblName`: 表名。 - `@strGetFields`: 需要获取的字段列表,默认为`*`,即获取所有字段...
`p_page`存储过程的设计允许用户灵活地指定查询参数,包括表名、主键、查询字段、每页记录数、当前页数、过滤条件、分组依据以及排序方式,以实现高效的数据检索。 首先,我们来看`p_page`存储过程的主要功能。它...