- create PROCEDURE [dbo].[ShowPage]
- @strSQL varchar(max) = '' , -- 如: 'a.UserName,a.Password,b.id from Users a left join Roles b on a.id=b.id where a.id>0'
- @strOrder varchar(max) = '' , -- 排序的字段名 如: 'a.id desc,a.AddTime desc'
- @PageSize int = 10, -- 页尺寸
- @PageIndex int = 1 -- 页码
- AS
- declare @ExecSQL varchar(max)
- set @ExecSQL= 'SELECT * FROM (SELECT ROW_NUMBER() OVER ( ORDER BY ' + @strOrder + ') AS pos,' + @strSQL + ') AS sp WHERE pos BETWEEN ' +str((@PageIndex-1)*@PageSize+1)+ ' AND ' +str(@PageIndex*@PageSize)
- --print @ExecSQL
- exec (@ExecSQL)
SQL 2005 ROW_NUMBER() 存储过程分页
最新推荐文章于 2025-11-25 13:06:55 发布
本文介绍了一个使用T-SQL编写的存储过程,用于实现通用的分页查询功能。通过传递SQL查询语句、排序字段、页面大小及页码等参数,该存储过程能够返回指定范围内的记录。
1374

被折叠的 条评论
为什么被折叠?



