SQL Server 数据库存储过程分页显示
2022-11-12 09:54:28
内容摘要
这篇文章主要为大家详细介绍了SQL Server 数据库存储过程分页显示,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!注:需要建立索引
代码如
文章正文
这篇文章主要为大家详细介绍了SQL Server 数据库存储过程分页显示,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
注:需要建立索引代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | <code> /* 经测试,在14483461条记录中查询第100000页,每页10条记录按升序和降序第一次时间均为0.47秒,第二次时间均为0.43秒,测试语法如下: execGetRecordFromPagenews,newsid,10,100000 news为表名,newsid为关键字段,使用时请先对newsid建立索引。 */ /* 函数名称:GetRecordFromPage 函数功能:获取指定页的数据 参数说明:@tblName包含数据的表名 @fldName关键字段名 @PageSize每页记录数 @PageIndex要获取的页码 @OrderType排序类型,0-升序,1-降序 @strWhere查询条件(注意:不要加where) 作 者:铁拳 邮 箱:unjianhua_kki@sina.com">sunjianhua_kki@sina.com 创建时间:2004-07-04 修改时间:2004-07-04 */ CreatePROCEDUREGetRecordFromPage @tblNamevarchar(255),--表名 @fldNamevarchar(255),--字段名 @PageSizeint=10,--页尺寸 @PageIndexint=1,--页码 @OrderTypebit=0,--设置排序类型,非0值则降序 @strWherevarchar(2000)= '' --查询条件(注意:不要加where) AS declare @strSQLvarchar(6000)--主语句 declare @strTmpvarchar(1000)--临时变量 declare @strOrdervarchar(500)--排序类型 if @OrderType!=0 begin set@strTmp= "<(selectmin" set@strOrder= "orderby[" +@fldName+ "]desc" end else begin set@strTmp= ">(selectmax" set@strOrder= "orderby[" +@fldName+ "]asc" end set@strSQL= "selecttop" +str(@PageSize)+ "*from[" +@tblName+ "]where[" +@fldName+ "]" +@strTmp+ "([" +@fldName+ "])from(selecttop" +str((@PageIndex-1)*@PageSize)+ "[" +@fldName+ "]from[" +@tblName+ "]" +@strOrder+ ")astblTmp)" +@strOrder if @strWhere!= '' set@strSQL= "selecttop" +str(@PageSize)+ "*from[" +@tblName+ "]where[" +@fldName+ "]" +@strTmp+ "([" +@fldName+ "])from(selecttop" +str((@PageIndex-1)*@PageSize)+ "[" +@fldName+ "]from[" +@tblName+ "]where" +@strWhere+ "" +@strOrder+ ")astblTmp)and" +@strWhere+ "" +@strOrder if @PageIndex=1 begin set@strTmp= "" if @strWhere!= '' set@strTmp= "where(" +@strWhere+ ")" set@strSQL= "selecttop" +str(@PageSize)+ "*from[" +@tblName+ "]" +@strTmp+ "" +@strOrder end exec (@strSQL) GO </code> |
注:关于SQL Server 数据库存储过程分页显示的内容就先介绍到这里,更多相关文章的可以留意
代码注释