分页存储过程

CREATE PROCEDURE  page 
    @PageIndex INT, /*@PageIndex从计数,0为第一页*/
    @PageSize  INT /*页面大小*/
AS 
    declare  @RecordCount INT /*记录数*/
    declare @PageCount INT  /*页数*/
/*获取记录数*/
Select @RecordCount = COUNT(*) FROM USERS
/*计算页面数据*/
SET @PageCount = CEILING(@RecordCount * 1.0 / @PageSize)
/*检查页面是否超出记录*/
IF @PageIndex<0
BEGIN
     SET  @PageIndex=0
END
if @PageIndex >@PageCount - 1 
BEGIN
     SET  @PageIndex=@PageCount-1
END
/*TOP记录数*/
DECLARE @TOPCOUNT INT
SET @TOPCOUNT = @RecordCount - @PageSize * @PageIndex 
DECLARE @SQLSTR NVARCHAR(1000) 

IF @PageIndex = 0 OR @PageCount <= 1
BEGIN
    SET @SQLSTR ='Select TOP '+STR(@PageSize)+
     '* FROM USERS'
END
ELSE
BEGIN 
    IF @PageIndex = @PageCount - 1
    BEGIN
       SET @SQLSTR ='Select * FROM ( Select TOP  ' + STR(@TOPCOUNT) +
       '* From users  ORDER BY ID DESC) T'
    END
    ELSE
    BEGIN
       SET @SQLSTR =' Select TOP '+STR(@PageSize)+'* FROM (Select TOP ' + STR(@TOPCOUNT) +
       '* FROM users ORDER BY ID  DESC) T ORDER BY ID ASC'
    END
END
ExEC (@SQLSTR)
GO
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值