• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
愛如風過
我想到一个地方,那里最好一年下2次雨,1次下半年!
博客园    首页    新随笔    联系   管理    订阅  订阅
分页存储过程

CREATE PROCEDURE P_GetPage1
( 
   @tblName      varchar(255),       -- 表名
   @fldName      varchar(255),       -- 主键字段名
   @pageSize     int=10,             -- 分页大小
   @pageIndex    int=1,              -- 页码
   @doCount      bit=0,              -- 返回记录总数, 1 值则返回
   @orderType    bit=0,              -- 设置排序类型, 非 0 值则降序
   @orderField   varchar(255),       -- 排序字段名
   @strWhere     varchar(1000) = ''  -- 查询条件 (注意: 不要加 where)
)
AS
  SET NOCOUNT ON
  declare @strSQL   varchar(2000)       -- 主语句
  declare @strTmp   varchar(2000)       -- 临时变量
  if(@doCount=1)
     BEGIN
      IF @strWhere!=''
       SET @strSQL='SELECT COUNT(*) FROM '+@tblName+' WHERE '+@strWhere
      ELSE
       BEGIN
       SET @strSQL='SELECT COUNT(*) FROM '+@tblName
       END
      EXEC (@strSQL)
     END
  else
 BEGIN
    create table #indextable(id INT IDENTITY(1,1),nid varchar(36))
 DECLARE @PageLowerBound INT                            
 DECLARE @PageUpperBound INT
 SET @PageLowerBound=(@pageindex-1)*@pagesize
 SET @PageUpperBound=@PageLowerBound+@pagesize
 SET ROWCOUNT @PageUpperBound
      SET @strTmp='   INSERT INTO #indextable(nid) SELECT '+@fldName+ ' FROM '+@tblName+' ORDER BY '+@orderField
   IF @orderType=0
       SET @strTmp='  INSERT INTO #indextable(nid) SELECT '+@fldName+ ' FROM '+@tblName+' ORDER BY '+@orderField+' ASC'
   ELSE
       BEGIN
       SET @strTmp='  INSERT INTO #indextable(nid) SELECT '+@fldName+ ' FROM '+@tblName+' ORDER BY '+@orderField+' DESC'
   END
      EXEC (@strTmp)
      SET @strSQL='SELECT * FROM '+@tblName+' O,#indextable t WHERE O.'+@fldName+'=t.nid
   and t.id between '+CAST((@PageLowerBound+1) AS NVARCHAR(10))+' and '+CAST(@PageUpperBound AS NVARCHAR(36))+'  ORDER BY t.id'
       EXEC (@strSQL)
 END

  SET NOCOUNT OFF

posted on 2008-07-25 13:10  愛如風過  阅读(121)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3