CREATE procedure [dbo].[SqlPager] @sqlstr nvarchar(4000), --查询字符串 @currentpage int, --第N页 @pagesize int --每页行数 as 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 TotalPage,@rowcount as TotalCount,@currentpage as CurrentPage set @currentpage=(@currentpage-1)*@pagesize+1 exec sp_cursorfetch @P1,16,@currentpage,@pagesize exec sp_cursorclose @P1 set nocount off
问题可能出在执行sp_cursoropen失败了,你查看下它的返回值
如果不是0,那么就是出错了
https://msdn.microsoft.com/en-us/library/ff848737.aspx
分享数据库前沿,解构实战干货,推动数据库技术变革