zoukankan      html  css  js  c++  java
  • SQL2005分页存储过程

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    -- =============================================
    -- Author:阿瑞-- Create date: 2008-03-13
    -- Description: 分页存储过程
    -- Debug:exec Proc_AspNetPager 'ProductType','[PTypeId],[Name],[Order]','1=1',5,2,'[order]',1,0
    -- =============================================
    CREATE PROCEDURE [dbo].[Proc_AspNetPager]
     @TableName varchar(20),  --表明
     @FieldName varchar(300), --显示的字段明
     @Where varchar(500),
     @PageSize int,    --条数
     @PageIndex int,    --页码
     @FiledOrder varchar(50), --排序字段
     @Order bit,    --排序类型 1为倒序,否则为正序
     @DoCount bit    --是否返回总数 1为返回,否则不返回
    AS
    BEGIN
     DECLARE @SQL varchar(4000)
     DECLARE @ORDERStr varchar(200)
     SET NOCOUNT ON 

     IF(@Order=1)
      SET @ORDERStr = 'ORDER BY '+@FiledOrder+' DESC '
     ELSE
      SET @ORDERStr = 'ORDER BY '+@FiledOrder+' ASC '
     IF(@DoCount=1)
     BEGIN
      SET @SQL = 'SELECT COUNT(*) FROM '+@TableName+' WHERE '+@Where+' '
       + 'SELECT top '+cast(@PageSize as varchar)+' '+@FieldName+' FROM '+@TableName+' WHERE '+@Where+' '
       + @ORDERStr
     END
     ELSE
      BEGIN
      SET @SQL = 'WITH Temptbl as ('
       +'SELECT ROW_NUMBER() OVER ('+@ORDERStr+')AS Row, '+@FieldName+' FROM '+@TableName+'  WHERE '+@Where+')'
       +'SELECT * FROM Temptbl WHERE Row between ('+cast(@PageIndex as varchar)+'-1)*'+cast(@PageSize as varchar)+'+1'+' and ('+cast(@PageIndex as varchar)+'-1)*'+cast(@PageSize as varchar)+'+'+cast(@PageSize as varchar)
     END
     EXEC(@SQL)
    print @SQL
    END


     

  • 相关阅读:
    [题解]小B的询问-莫队水题
    [学习笔记]莫队学习笔记[未完待续]
    ffmpeg设置超时时间
    python signal
    pydantic库使用文档
    rtmp及直播流相关资料
    ffmpeg 将视频转换成m3u8视频
    nginx stop失败问题
    linux使用ssh远程登录服务器
    解决Fcitx输入法文字候选无前端问题
  • 原文地址:https://www.cnblogs.com/goooto/p/1105242.html
Copyright © 2011-2022 走看看