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

复制代码 代码如下:

createproccommonPagination@columnsvarchar(500),--要显示的列名,用逗号隔开@tableNamevarchar(100),--要查询的表名@orderColumnNamevarchar(100),--排序的列名@ordervarchar(50),--排序的方式,升序为asc,降序为desc@wherevarchar(100),--where条件,如果不带查询条件,请用1=1@pageIndexint,--当前页索引@pageSizeint,--页大小(每页显示的记录条数)@pageCountintoutput--总页数,输出参数asbegindeclare@sqlRecordCountnvarchar(1000)--得到总记录条数的语句declare@sqlSelectnvarchar(1000)--查询语句set@sqlRecordCount=N'select@recordCount=count(*)from'+@tableName+'where'+@wheredeclare@recordCountint--保存总记录条数的变量execsp_executesql@sqlRecordCount,N'@recordCountintoutput',@recordCountoutput--动态sql传参if(@recordCount%@pageSize=0)--如果总记录条数可以被页大小整除set@pageCount=@recordCount/@pageSize--总页数就等于总记录条数除以页大小else--如果总记录条数不能被页大小整除set@pageCount=@recordCount/@pageSize+1--总页数就等于总记录条数除以页大小加1set@sqlSelect=N'select'+@columns+'from(selectrow_number()over(orderby'+@orderColumnName+''+@order+')astempid,*from'+@tableName+'where'+@where+')astempTableNamewheretempidbetween'+str((@pageIndex-1)*@pageSize+1)+'and'+str(@pageIndex*@pageSize)exec(@sqlSelect)--执行动态Sqlendgo--以下是调用示例usepubsgodeclare@pageCountintexeccommonPagination'job_id,job_desc','jobs','job_id','asc','1=1',2,2,@pageCountoutputselect'总页数为:'+str(@pageCount)

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