主页 > 知识库 > 实现SQL分页的存储过程代码

实现SQL分页的存储过程代码

热门标签:Linux服务器 铁路电话系统 百度竞价排名 地方门户网站 AI电销 网站排名优化 呼叫中心市场需求 服务外包

SQL分页的存储过程代码,需要的朋友们直接拿去用,使用非常简单。

分享代码如下

USE [SendMessage]
GO
/****** Object: StoredProcedure [dbo].[pages]  Script Date: 07/09/2015 13:46:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[pages]
(
@tbname   nvarchar(100),        --要分页显示的表名
@FieldKey  nvarchar(1000),   --用于定位记录的主键(惟一键)字段,可以是逗号分隔的多个字段
@PageCurrent int=1,        --要显示的页码
@PageSize  int=10,        --每页的大小(记录数)
@FieldShow nvarchar(1000)='',   --以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段
@FieldOrder nvarchar(1000)='',   --以逗号分隔的排序字段列表,可以指定在字段后面指定DESC/ASC
@WhereString  nvarchar(1000)=N''   --查询条件
)
AS
begin
 
IF ISNULL(@FieldKey,N'')=''
BEGIN
  RAISERROR(N'分页处理需要主键(或者惟一键)',1,16)
  RETURN
END
 
IF ISNULL(@PageCurrent,0)1 SET @PageCurrent=1
 
IF ISNULL(@PageSize,0)1 SET @PageSize=10
 
IF ISNULL(@FieldShow,N'')=N'' SET @FieldShow=N'*'
 
IF ISNULL(@FieldOrder,N'')=N''
  SET @FieldOrder=N''
ELSE
  SET @FieldOrder=N'ORDER BY '+LTRIM(@FieldOrder)
 
IF ISNULL(@WhereString,N'')=N''
  SET @WhereString=N''
ELSE
  SET @WhereString=N'WHERE '+@WhereString+N''
 
--计算分页显示的TOPN值
DECLARE @TopN varchar(20),@StartRecord varchar(20),@EndRecord varchar(20)
SELECT @TopN=@PageSize,
  @StartRecord=(@PageCurrent-1)*@PageSize+1,
  @EndRecord=(@PageCurrent-1)*@PageSize+@PageSize
 
--第一页直接显示
IF @PageCurrent=1
  EXEC(N'SELECT TOP '+@TopN
    +N' '+@FieldShow
    +N' FROM '+@tbname
    +N' '+@WhereString
    +N' '+@FieldOrder)
ELSE
EXEC(N'with temptbl as(
select ROW_NUMBER() Over('+@FieldOrder+') as row, '+@FieldKey+' from '+@tbname+N' '+@WhereString+')
select '+@FieldShow+' from (select B.* from (select '+@FieldKey+' from temptbl where row between '+@StartRecord+' and '+@EndRecord+')A left join '+@tbname+' B on A.'+@FieldKey+'=B.'+@FieldKey+')C')
 
END

以上就是本文的全部内容,希望对大家的学习有所帮助。

您可能感兴趣的文章:
  • sql2005 存储过程分页代码
  • sqlserver 千万数量级分页存储过程代码
  • sql 存储过程分页代码 支持亿万庞大数据量
  • SQL Server 2005通用分页存储过程及多表联接应用
  • mssql 高效的分页存储过程分享
  • 基于Sql Server通用分页存储过程的解决方法
  • 深入sql server 2005 万能分页存储过程的详解
  • SQL Server 分页查询通用存储过程(只做分页查询用)
  • SQL Server两种分页的存储过程使用介绍
  • SqlServer 2000、2005分页存储过程整理

标签:崇左 黄山 铜川 湖南 湘潭 兰州 仙桃 衡水

巨人网络通讯声明:本文标题《实现SQL分页的存储过程代码》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266