博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通用分页存储过程
阅读量:7111 次
发布时间:2019-06-28

本文共 3396 字,大约阅读时间需要 11 分钟。

/*通用分页存储过程*/USE HotelManagementSystemGOIF EXISTS(SELECT * FROM sys.objects WHERE NAME='cndoup_GetPageOfRecords')  DROP PROCEDURE cndoup_GetPageOfRecordsGO--创建存储过程CREATE PROCEDURE cndoup_GetPageOfRecords  @pageSize int = 20,                                                --分页大小  @currentPage int ,                                                 --第几页  @columns varchar(1000) = '*',                            --需要得到的字段   @tableName varchar(100),                                     --需要查询的表      @condition varchar(1000) = '',                         --查询条件, 不用加where关键字  @ascColumn varchar(100) = '',                            --排序的字段名 (即 order by column asc/desc)  @bitOrderType bit = 0,                                         --排序的类型 (0为升序,1为降序)  @pkColumn varchar(50) = ''                                 --主键名称ASBEGIN                                                                                    --存储过程开始  DECLARE @strTemp varchar(300)  DECLARE @strSql varchar(5000)                            --该存储过程最后执行的语句  DECLARE @strOrderType varchar(1000)                --排序类型语句 (order by column asc或者order by column desc)  BEGIN    IF @bitOrderType = 1                --降序      BEGIN        SET @strOrderType = ' ORDER BY '+@ascColumn+' DESC'        SET @strTemp = '<(SELECT min'      END    ELSE                  --升序      BEGIN        SET @strOrderType = ' ORDER BY '+@ascColumn+' ASC'        SET @strTemp = '>(SELECT max'      END    IF @currentPage = 1            --第一页      BEGIN        IF @condition != ''          SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@columns+' FROM '+@tableName+            ' WHERE '+@condition+@strOrderType        ELSE          SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@columns+' FROM '+@tableName+@strOrderType      END    ELSE                  -- 其他页      BEGIN        IF @condition !=''          SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@columns+' FROM '+@tableName+          ' WHERE '+@condition+' AND '+@pkColumn+@strTemp+'('+@pkColumn+')'+' FROM (SELECT TOP '+STR((@currentPage-1)*@pageSize)+          ' '+@pkColumn+' FROM '+@tableName'where'+@condition+@strOrderType+') AS TabTemp)'+@strOrderType        ELSE          SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@columns+' FROM '+@tableName+          ' WHERE '+@pkColumn+@strTemp+'('+@pkColumn+')'+' FROM (SELECT TOP '+STR((@currentPage-1)*@pageSize)+' '+@pkColumn+          ' FROM '+@tableName+@strOrderType+') AS TabTemp)'+@strOrderType      END  END  EXEC (@strSql)END                          --存储过程结束--分页得到客房信息列表测试EXEC cndoup_GetPageOfRecords 20,2,'房间号=RoomNum,            房间状态=(SELECT RoomTypeDes FROM RoomType WHERE RoomTypeID=Room.RoomTypeID),            房间状态=(SELECT RSDec FROM RoomStatus WHERE RoomStatusID=Room.RoomStatusID),            床位数=BedNum,            楼层=Floors,            描述=RoomDes,            备注=RoomRemark','Room','','RoomID',0,'RoomID'--根据房间号得到客房信息测试EXEC cndoup_GetPageOfRecords 1,1,'房间号=RoomNum,            房间状态=(SELECT RoomTypeDes FROM RoomType WHERE RoomTypeID=Room.RoomTypeID),            房间状态=(SELECT RSDec FROM RoomStatus WHERE RoomStatusID=Room.RoomStatusID),            BedNum,            Floors,            RoomDes,            RoomRemark','Room','RoomNum=304','RoomID',0,'RoomID'--·  得到客房类型信息列表测试EXEC cndoup_GetPageOfRecords 10,1,'RoomTypeDes,Price,Area,AddBed,MaxBedNum,BedPrice,HourRoom,HourPrice,Remark','RoomType','','RoomTypeID',0,'RoomTypeID'

 

转载地址:http://eslhl.baihongyu.com/

你可能感兴趣的文章
js的setTimeout和setInterval
查看>>
为RHEL5 配置centos YUM源的两种方法
查看>>
phpadmin 详细配置
查看>>
hbase存储格式
查看>>
Struts1.3 action配置
查看>>
Cisco IOS 配置PPPOE
查看>>
DRP(导向应答协议
查看>>
华为数通产品MIB库OID信息自助指引
查看>>
SCOM 2012系列③导入管理包
查看>>
C++里的继承和多态(中)——分析单继承、多继承、菱形继承(不含虚函数)...
查看>>
PHP: 深入了解一致性哈希
查看>>
set yum resource to your cdrom
查看>>
教你设置更安全的密码
查看>>
用递归读取数据库(*.MDB)生成树节点(TreeNode)
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
nginx 非80、443端口跳转到80、443
查看>>
ubuntu 12.04 安装kvm,解决Virtual Machine Manager启动报错
查看>>
Oracle IO问题解析(八)
查看>>
Replacing the ESXi Host Default Certificate with a CA-Signed Certificate
查看>>