您好,欢迎访问一九零五行业门户网

mssql 通用分页存储过程实例

一篇好用的通用分页存储过程,可以用在任何开发上哦,只要小小的改动就好了,有需要的朋友可以参考一下本款实例。
 代码如下 复制代码
/*通用存储过程*/
use hotelmanagementsystem
go
if exists(select * from sys.objects where name='cndoup_getpageofrecords')
drop procedure cndoup_getpageofrecords
go
--创建存储过程
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) = ''                 --主键名称
as
begin                                          --存储过程开始
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 desc'
set @strtemp = 'end
else--升序
begin
set @strordertype = ' order by asc'
set @strtemp = '>(select max'
end
if @currentpage = 1--第一页
begin
if @condition != ''
set @strsql = 'select top '+str(@pagesize)+' from +
' where
else
set @strsql = 'select top '+str(@pagesize)+' from
end
else-- 其他页
begin
if @condition !=''
set @strsql = 'select top '+str(@pagesize)+' from +
' where and from (select top '+str((@currentpage-1)*@pagesize)+
' from ) as tabtemp)'+@strordertype
else
set @strsql = 'select top '+str(@pagesize)+' from +
' where from (select top '+str((@currentpage-1)*@pagesize)+' +
' from ) 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'
其它类似信息

推荐信息