sqlserver通用分页的存储过程

54次阅读
没有评论

共计 1549 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章主要讲解了“sqlserver 通用分页的存储过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“sqlserver 通用分页的存储过程”吧!

复制代码 代码如下:

 create proc commonPagination @columns varchar(500), -- 要显示的列名,用逗号隔开  @tableName varchar(100), -- 要查询的表名  @orderColumnName varchar(100), -- 排序的列名  @order varchar(50), -- 排序的方式,升序为 asc, 降序为  desc @where varchar(100), --where  条件,如果不带查询条件,请用  1=1 @pageIndex int, -- 当前页索引  @pageSize int, -- 页大小 (每页显示的记录条数) @pageCount int output -- 总页数,输出参数  as begin declare @sqlRecordCount nvarchar(1000) -- 得到总记录条数的语句  declare @sqlSelect nvarchar(1000) -- 查询语句  set @sqlRecordCount=N select @recordCount=count(*) from   +@tableName +   where  + @where declare @recordCount int -- 保存总记录条数的变量  exec sp_executesql @sqlRecordCount,N @recordCount int output ,@recordCount output -- 动态  sql  传参  if( @recordCount % @pageSize = 0) -- 如果总记录条数可以被页大小整除  set @pageCount = @recordCount / @pageSize -- 总页数就等于总记录条数除以页大小  else -- 如果总记录条数不能被页大小整除  set @pageCount = @recordCount / @pageSize + 1 -- 总页数就等于总记录条数除以页大小加 1  set @sqlSelect = N select  +@columns+  from ( select row_number() over (order by   +@orderColumnName+   +@order +) as tempid,* from   +@tableName+  where  + @where + ) as tempTableName where tempid between   +str((@pageIndex - 1)*@pageSize + 1 ) +  and  +str( @pageIndex * @pageSize) exec (@sqlSelect) -- 执行动态 Sql end go -- 以下是调用示例  use pubs go declare @pageCount int exec commonPagination  job_id,job_desc , jobs , job_id ,  asc , 1=1 ,2,2,@pageCount output select  总页数为: + str(@pageCount)

感谢各位的阅读,以上就是“sqlserver 通用分页的存储过程”的内容了,经过本文的学习后,相信大家对 sqlserver 通用分页的存储过程这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计1549字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)