根据某一个SQL语句,做数据分页,不限于一张表的分页算法. 但似乎发现该存储过程在大数据量
处理性能并不高. 少数据量的分页性能还可以.
- Create PROC [dbo].[SP_SQL_Query]
- @SqlStr NVARCHAR(4000), --查询字符串
- @CurrentPage INT, --第N页
- @PageSize INT --每页行数
- AS
- BEGIN
- SET NOCOUNT ON
- DECLARE @P1 INT, --P1是游标的id
- @rowcount INT
- EXEC sp_cursoropen @P1 OUTPUT,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
- SELECT CEILING(1.0*@rowcount/@pagesize) AS 总页数--,@rowcount as 总行数,@currentpage as 当前页
- SET @currentpage=(@currentpage-1)*@pagesize+1
- EXEC sp_cursorfetch @P1,16,@currentpage,@pagesize
- EXEC sp_cursorclose @P1
- SET NOCOUNT OFF
- END