SQL 简单分页查询
来源:互联网 发布:淘宝评价心级 编辑:程序博客网 时间:2024/05/22 09:25
0001 use tzyj_motortest_data0002 go0003 if exists(select * from sysobjects where name = N'pGetPageDataFromTable')0004 drop procedure pGetPageDataFromTable0005 GO0006 0007 create procedure pGetPageDataFromTable0008 (0009 @tableName varchar(1000),0010 @pageSize int,0011 @currentPageIndex int,0012 @indexFieldName nvarchar(100)0013 )0014 AS0015 declare @sqlText nvarchar(1000)0016 0017 begin0018 set nocount on0019 if (@tableName is null) 0020 begin0021 RaisError('未提供分页的源表表名!!', 16, 1)0022 return -1000023 end0024 0025 set @sqlText = 'select top ' + cast(@pageSize as nvarchar(10)) + ' * from ' + @tableName0026 + ' where ' + @indexFieldName + ' not in (select top ' 0027 + cast(@pageSize * (@currentPageIndex - 1) as nvarchar(10)) + ' ' + @indexFieldName0028 + ' from ' + @tableName + ' order by ' + @indexFieldName + ') '0029 + ' order by ' + @indexFieldName0030 print @sqlText0031 exec sp_executeSQL @sqlText0032 0033 end0034 GO0035 0036 -- select count(*) from testCrvData0037 -- select top 10 * from testCrvDate0038 0039 exec pGetPageDataFromTable 'testCrvData', 30, 100000, N'crvID'