• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    实现SQL分页的存储过程代码

    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语句计算两个日期之间有多少个工作日的方法
    下一篇:SQL2005、SQL2008允许远程连接的配置说明(附配置图)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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