sqlserver分页存储过程实例

数据库 SQL Server
使用sqlserver分页,可以解决SQL查询中的一些问题,下文将以实例的方式为您介绍sqlserver分页存储过程的写法,希望对您能有所启迪。

在SQL数据库中,经常需要用到分页,下面就将为您示例sqlserver分页存储过程的建立,供您参考。如果您在sqlserver分页方面遇到过问题,不妨一看,相信对您更好掌握sqlserver分页会有帮助。

  1. create proc commonPagination   
  2. @columns varchar(500), --要显示的列名,用逗号隔开   
  3. @tableName varchar(100), --要查询的表名   
  4. @orderColumnName varchar(100), --排序的列名   
  5. @order varchar(50), --排序的方式,升序为asc,降序为 desc   
  6. @where varchar(100), --where 条件,如果不带查询条件,请用 11=1   
  7. @pageIndex int, --当前页索引   
  8. @pageSize int, --页大小(每页显示的记录条数)   
  9. @pageCount int output --总页数,输出参数   
  10. as   
  11. begin   
  12. declare @sqlRecordCount nvarchar(1000) --得到总记录条数的语句   
  13. declare @sqlSelect nvarchar(1000) --查询语句   
  14. set @sqlRecordCount=N'select @recordCount=count(*) from '   
  15. +@tableName + ' where '+ @where   
  16. declare @recordCount int --保存总记录条数的变量   
  17. exec sp_executesql @sqlRecordCount,N'@recordCount int output',@recordCount output   
  18. --动态 sql 传参   
  19. if( @recordCount % @pageSize = 0) --如果总记录条数可以被页大小整除   
  20. set @pageCount = @recordCount / @pageSize --总页数就等于总记录条数除以页大小   
  21. else --如果总记录条数不能被页大小整除   
  22. set @pageCount = @recordCount / @pageSize + 1 --总页数就等于总记录条数除以页大小加1   
  23. set @sqlSelect =   
  24. N'select '+@columns+' from (   
  25. select row_number() over (order by '   
  26. +@orderColumnName+' '+@order   
  27. +') as tempid,* from '   
  28. +@tableName+' where '+ @where   
  29. +') as tempTableName where tempid between '   
  30. +str((@pageIndex - 1)*@pageSize + 1 )   
  31. +' and '+str( @pageIndex * @pageSize)   
  32. exec (@sqlSelect) --执行动态Sql   
  33. end   
  34. go   
  35. --以下是调用示例   
  36. use pubs   
  37. go   
  38. declare @pageCount int   
  39. exec commonPagination   
  40. 'job_id,job_desc','jobs','job_id',   
  41. 'asc','11=1',2,2,@pageCount output   
  42. select '总页数为:' + str(@pageCount)  
  43. 详细出处参考:http://www.jb51.net/article/19936.htm 

 

 

 

【编辑推荐】

sql server分页的两种方法比较

SQL SERVER分区视图

SQL中的分析函数

SQL中返回计算表达式的函数

SQL中DATENAME函数的用法

责任编辑:段燃 来源: 互联网
相关推荐

2011-10-10 16:44:37

分页数据库

2010-10-26 14:50:11

oracle存储过程

2010-11-10 15:16:14

Sql Server分

2010-11-29 09:45:30

Sybase分页

2011-03-28 10:46:36

sql server存储分页

2011-03-24 13:38:47

SQL Server 存储分页

2010-11-29 09:12:46

sybase分页存储过

2011-04-13 09:45:15

Oracle存储

2009-03-25 10:48:08

存储银行Oracle

2010-09-14 10:16:57

sql server

2010-11-16 14:30:32

Oracle存储过程

2010-09-14 10:47:45

sql server存

2012-04-23 15:10:18

ASP.NET

2010-06-10 12:37:27

MySQL分页查询

2011-06-17 17:37:16

JavaSQL Server

2011-03-24 13:31:35

2分法存储过程分页

2010-04-30 08:47:22

Oracle分页存储

2010-06-30 14:36:49

SQL Server

2010-06-11 14:41:20

MySQL分页查询

2010-06-18 10:34:38

SQL Server
点赞
收藏

51CTO技术栈公众号