加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 2005 通用分页存储过程

发布时间:2020-12-12 12:31:51 所属栏目:MsSql教程 来源:网络整理
导读:通过SQLServer 2005之后新加入的ROW_NUMBER()函数进行分页:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-- =============================================-- Author: Author,Name-- Description: 通用分页存储过程-- ===================================
 通过SQLServer 2005之后新加入的ROW_NUMBER()函数进行分页:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-- =============================================-- Author: <Author,Name>-- Description: <通用分页存储过程>-- =============================================Create PROCEDURE [dbo].[ClientNewsPager] @talbeName varchar(255)='',-- 表名 @getFields varchar(1000)='*',-- 需要返回的列 @orderBy varchar(255)='',-- 排序的字段名 @PageSize int=15,-- 页尺寸 @PageIndex int=1,-- 页码,从1开始 @doCount bit=0,-- 返回记录总数,非 0 值则返回 @whereStr varchar(1500)='' -- 查询条件 (注意: 不要加 where)ASBEGIN declare @rowResult intBegin Tran declare @strSQL varchar(5000) declare @startRowIndex int declare @maximumRows int set @startRowIndex = (@PageIndex - 1) * @PageSize set @maximumRows = @startRowIndex + @PageSize if(@doCount!=0) begin if @whereStr !='' set @strSQL = 'select id from ' + @talbeName + ' where '+ @whereStr else set @strSQL = 'select id from ' + @talbeName end else begin if(@whereStr!='') begin set @strSQL = 'SELECT ' + @getFields + ' FROM (SELECT ROW_NUMBER() OVER (ORDER BY ' + @orderBy + ') AS RowsNum,' + @getFields + ' FROM ' + @talbeName + ' where ' + @whereStr + ') AS TMP WHERE (RowsNum > ' + str(@startRowIndex) + ' AND RowsNum <= ' + str(@maximumRows) + ')' end else begin set @strSQL = 'SELECT ' + @getFields + ' FROM (SELECT ROW_NUMBER() OVER (ORDER BY ' + @orderBy + ') AS RowsNum,' + @getFields + ' FROM ' + @talbeName + ') AS TMP WHERE (RowsNum > ' + str(@startRowIndex) + ' AND RowsNum <= ' + str(@maximumRows) + ')' end end exec(@strSQL) Set @rowResult = @@ROWCOUNTIf @@Error <> 0 Begin RollBack Tran Return -1 End Else Begin Commit Tran Return @rowResult EndEND

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读