SQLServer分页查询通用存储过程

时间:2022-02-27 04:43:28

/*----------------------------------------------
SQLServer分页查询通用存储过程 *procedure name : prcPageResult
SQLServer分页查询通用存储过程 *  author : FuChun
SQLServer分页查询通用存储过程 *  create date : 2006-10-04
SQLServer分页查询通用存储过程 */
SQLServer分页查询通用存储过程CREATE PROCEDURE prcPageResult
SQLServer分页查询通用存储过程-- 获得某一页的数据 --
SQLServer分页查询通用存储过程@currPage int = 1,                                    --当前页页码 (即Top currPage)
SQLServer分页查询通用存储过程@showColumn varchar(2000) = '*',           --需要得到的字段 (即 column1,column2,......)
SQLServer分页查询通用存储过程@tabName varchar(2000),                           --需要查看的表名 (即 from table_name)
SQLServer分页查询通用存储过程@strCondition varchar(2000) = '',              --查询条件 (即 where condition......) 不用加where关键字
SQLServer分页查询通用存储过程@ascColumn varchar(100) = '',                 --排序的字段名 (即 order by column asc/desc)
SQLServer分页查询通用存储过程@bitOrderType bit = 0,                            --排序的类型 (0为升序,1为降序)
SQLServer分页查询通用存储过程@pkColumn varchar(50) = '',                   --主键名称
SQLServer分页查询通用存储过程@pageSize int = 20                                --分页大小
SQLServer分页查询通用存储过程
SQLServer分页查询通用存储过程AS
SQLServer分页查询通用存储过程BEGIN -- 存储过程开始
SQLServer分页查询通用存储过程-- 该存储过程需要用到的几个变量 --
SQLServer分页查询通用存储过程DECLARE @strTemp varchar(1000)
SQLServer分页查询通用存储过程DECLARE @strSql varchar(4000)                   --该存储过程最后执行的语句
SQLServer分页查询通用存储过程DECLARE @strOrderType varchar(1000)      --排序类型语句 (order by column asc或者order by column desc)
SQLServer分页查询通用存储过程
SQLServer分页查询通用存储过程BEGIN
SQLServer分页查询通用存储过程IF @bitOrderType = 1   -- bitOrderType=1即执行降序
SQLServer分页查询通用存储过程BEGIN
SQLServer分页查询通用存储过程    SET @strOrderType = ' ORDER BY '+@ascColumn+' DESC'
SQLServer分页查询通用存储过程    SET @strTemp = '<(SELECT min'
SQLServer分页查询通用存储过程END
SQLServer分页查询通用存储过程ELSE
SQLServer分页查询通用存储过程BEGIN
SQLServer分页查询通用存储过程    SET @strOrderType = ' ORDER BY '+@ascColumn+' ASC'
SQLServer分页查询通用存储过程    SET @strTemp = '>(SELECT max'
SQLServer分页查询通用存储过程END
SQLServer分页查询通用存储过程
SQLServer分页查询通用存储过程IF @currPage = 1    -- 如果是第一页
SQLServer分页查询通用存储过程BEGIN
SQLServer分页查询通用存储过程    IF @strCondition != ''
SQLServer分页查询通用存储过程        SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@showColumn+' FROM '+@tabName+
SQLServer分页查询通用存储过程            ' WHERE '+@strCondition+@strOrderType
SQLServer分页查询通用存储过程    ELSE
SQLServer分页查询通用存储过程        SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@showColumn+' FROM '+@tabName+@strOrderType
SQLServer分页查询通用存储过程END
SQLServer分页查询通用存储过程
SQLServer分页查询通用存储过程ELSE    -- 其他页
SQLServer分页查询通用存储过程BEGIN
SQLServer分页查询通用存储过程    IF @strCondition !=''
SQLServer分页查询通用存储过程        SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@showColumn+' FROM '+@tabName+
SQLServer分页查询通用存储过程        ' WHERE '+@strCondition+' AND '+@pkColumn+@strTemp+'('+@pkColumn+')'+' FROM (SELECT TOP '+STR((@currPage-1)*@pageSize)+
SQLServer分页查询通用存储过程        ' '+@pkColumn+' FROM '+@tabName+@strOrderType+') AS TabTemp)'+@strOrderType
SQLServer分页查询通用存储过程    ELSE
SQLServer分页查询通用存储过程        SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@showColumn+' FROM '+@tabName+
SQLServer分页查询通用存储过程        ' WHERE '+@pkColumn+@strTemp+'('+@pkColumn+')'+' FROM (SELECT TOP '+STR((@currPage-1)*@pageSize)+' '+@pkColumn+
SQLServer分页查询通用存储过程        ' FROM '+@tabName+@strOrderType+') AS TabTemp)'+@strOrderType
SQLServer分页查询通用存储过程END
SQLServer分页查询通用存储过程
SQLServer分页查询通用存储过程END
SQLServer分页查询通用存储过程EXEC (@strSql)
SQLServer分页查询通用存储过程END  -- 存储过程结束
SQLServer分页查询通用存储过程------------------------------------------------
SQLServer分页查询通用存储过程GO