/* 用存储过程实现的分页程序 */ CREATE PROC sp_PageRecordset @queryStr nvarchar(1000), --查询语句, 不要在前面加"SELECT"或"TOP n" @keyField nvarchar (200), --标识字段 @pageSize int, --每页的行数 @pageNumber int --要显示的页码, 从0开始 AS BEGIN DECLARE @sqlText AS nvarchar(4000) DECLARE @sqlTable AS nvarchar(4000) SET @sqlTable = 'SELECT TOP ' + CAST((@pageNumber + 1) * @pageSize AS varchar(30)) + ' ' + @queryStr SET @sqlText = 'SELECT TOP ' + CAST(@pageSize AS varchar(30)) + ' * ' + 'FROM (' + @sqlTable + ') AS tableA ' + 'WHERE ' + @keyField + ' NOT IN(SELECT TOP ' + CAST(@pageNumber * @pageSize AS varchar(30)) + ' ' + @keyField + ' FROM (' + @sqlTable + ') AS tableB)' EXEC (@sqlText) END TEST----------------------------------------------------------- drop procedure sp_PageRecordset exec sp_PageRecordset @queryStr = ' * from wzTa order by [id]', @keyField = '[ID]', @pageSize = 100, @pageNumber = 6000
用存储过程实现的分页程序
最新推荐文章于 2024-05-06 16:41:35 发布