苏飞论坛

标题: 存储过程分页,支持Where 和排序, 通用任何表 [打印本页]

作者: qq576733600    时间: 2013-6-26 17:14
标题: 存储过程分页,支持Where 和排序, 通用任何表
自己编写的一个 存储过程分页。

调用的时候 传人 表名 排序 页码参数  和查询条件 即可
  1. set ANSI_NULLS ON
  2. set QUOTED_IDENTIFIER ON
  3. go


  4. ALTER PROCEDURE [dbo].[GetRecordFromPage]
  5.     @tblName      varchar(255),       -- 表名
  6.     @fldName     varchar(255),       -- 排序语句
  7.     @PageSize     int = 10,           -- 页尺寸
  8.     @PageIndex    int = 1,            -- 页码
  9.     @strWhere     varchar(2000) = '' -- 查询条件 (注意: 不要加 where)
  10. AS

  11. declare @strSQL   varchar(6000)       -- 主语句
  12. declare @strTmp   varchar(1000)       -- 临时变量
  13. declare @strOrder varchar(500)        -- 排序类型


  14. set @strSQL='select *
  15.    from (
  16.     select row_number()over(order by tempColumn)tempRowNumber,*
  17.     from (select top '+str(@PageSize*@PageIndex)+' tempColumn=0,* from  '+@tblName+'
  18.     where '+@strWhere+'
  19.   '+@fldName+'
  20.     )t
  21. )tt
  22. where tempRowNumber>'+str((@PageIndex-1)*@PageSize)+' '

  23.    print @strSQL --输出sql语句
  24. exec (@strSQL)
复制代码

作者: gangn    时间: 2013-8-7 12:04
非常感谢你帮了我的大忙,真的太感谢你啦!
作者: gangn    时间: 2013-8-10 14:44
还没看懂...要注释一下吗?楼主
作者: chenbangbin    时间: 2014-12-22 15:16
强烈支持楼主ing……




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4