CREATE procedure [dbo].[SP_pagination] ( @sqlstr nvarchar(4000), --查询字符串 @pageindex int,--第N页 @pagesize int--每页行数 ) as set nocount on declare @P1 int, --P1是游标的id @rowcount int if(@pageindex<1) begin set @pageindex=1 end exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output select @rowcount as [Count],ceiling(1.0*@rowcount/@pagesize) as [PageCount],@pageindex as PageIndex set @pageindex=(@pageindex-1)*@pagesize+1 exec sp_cursorfetch @P1,16,@pageindex,@pagesize exec sp_cursorclose @P1 GO SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 1234 毫秒,占用时间 = 1290 毫秒。 SQL Server 执行时间: CPU 时间 = 1234 毫秒,占用时间 = 1290 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 354 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 354 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 1234 毫秒,占用时间 = 1646 毫秒。 (1 行受影响) SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
CREATE proc [dbo].[SplitPage] ( @sqlstr nvarchar(100), @tables nvarchar(50), @pageindex int,--第N页 @pagesize int--每页行数 ) as set nocount on declare @indexStart varchar(20),@rowcount int,@qqqq nvarchar(50) if(@pageindex<1) begin set @pageindex=1 end set @qqqq='select @count=count(ID) from '+@tables exec sp_executesql @qqqq,N'@count int out',@rowcount out set @indexStart = cast((@pageindex-1)*@pagesize as varchar(20)) select @rowcount as [Count],ceiling(1.0*@rowcount/@pagesize) as [PageCount],@pageindex as PageIndex exec( @sqlstr + ' offset ' + @indexStart + ' row fetch next ' + @pageSize +' rows only') --//检索该页数据 GO SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 93 毫秒,占用时间 = 16 毫秒。 SQL Server 执行时间: CPU 时间 = 93 毫秒,占用时间 = 16 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 484 毫秒,占用时间 = 1612 毫秒。 SQL Server 执行时间: CPU 时间 = 484 毫秒,占用时间 = 1612 毫秒。 SQL Server 执行时间: CPU 时间 = 577 毫秒,占用时间 = 1628 毫秒。 (1 行受影响) SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。