分页存储过程
记录一下自己以前用过的一些 工具存储过程,几乎写个页面就得用到的东西嘿!一个分页查询的存储过程 sqlServer的,如果以后有别的数据库了,再回来修改!
SqlServer 分页存储过程:
CREATE PROC [dbo].[GlobalPage] ( @tab nvarchar(max),---表名 @strFld nvarchar(max), --字段字符串 @strWhere varchar(max), --where条件 @PageIndex int, --页码 @PageSize int, --每页容纳的记录数 @Sort VARCHAR(255), --排序字段及规则,不用加order by @Count INT OUTPUT --返回记录总条数 ) AS declare @strSql nvarchar(max) declare @Exec_sql nvarchar(max) set nocount on; /* 查询总记录数*/ SET @Exec_sql='Set @Count=(SELECT COUNT(0) FROM ' + @tab + ' WHERE ' + @strWhere+' )' EXEC sp_executesql @Exec_sql,N'@Count int output',@Count output set @strSql=' SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY ' + @Sort + ') AS rownum, ' + @strFld + ' FROM ' + @tab + ' where ' + @strWhere + ') AS Dwhere WHERE rownum BETWEEN ' + CAST(((@PageIndex-1)*@PageSize + 1) as nvarchar(20)) + ' and ' + cast((@PageIndex*@PageSize) as nvarchar(20)) exec (@strSql) set nocount off;