MSSQL2005 分页存储过程

MSSQL2005 分页存储过程,第1张

概述 --调用方法:exec upPageDiv kucun,'id,ItemCode,ItemName','ItemCode asc','id>0',20,1,?,?  Create Procedure [dbo].[upPageDiv]      @TableName varchar(200),            --表名      @Fields varchar(5000)='*',    

 --调用方法:exec upPagediv kucun,'ID,ItemCode,Itemname','ItemCode asc','ID>0',20,1,?,?  Create Procedure [dbo].[upPagediv]      @tablename varchar(200),            --表名      @FIElds varchar(5000)='*',          --字段名(默认为*)      @OrderFIEld varchar(5000),          --排序字段(必须!支持多字段)      @sqlWhere varchar(5000)=Null,       --条件语句(不用加where)      @pageSize int,                      --指定每页记录条数      @pageIndex int=1,                   --指定当前页码      @totalPage int output,              --返回总页数      @totalRecord int output             --返回总记录数  As  Begin      Begin Tran  --开始事务      Declare @sql nvarchar(4000);      --计算总记录数      If (@sqlWhere='' Or @sqlWhere=Null)          Set @sql='Select @totalRecord=Count(*) From '+@tablename      Else          Set @sql='Select @totalRecord=Count(*) From '+@tablename+' Where '+@sqlWhere      Exec sp_executesql @sql,N'@totalRecord int output',@totalRecord output      --计算总页数      Select @TotalPage=Ceiling((@totalRecord+0.0)/@PageSize)      If (@sqlWhere='' Or @sqlWhere=Null)          Set @sql='Select * From (Select ROW_NUMBER() Over(Order By '+@OrderFIEld+') As rowID,'+@FIElds+' From '+@tablename      Else          Set @sql='Select * From (Select ROW_NUMBER() Over(Order By '+@OrderFIEld+') As rowID,'+@FIElds+' From '+@tablename+' Where '+@sqlWhere      --处理页数超出范围情况      If @PageIndex<=0          Set @pageIndex=1      If @pageIndex>@TotalPage          Set @pageIndex=@TotalPage       --处理开始点和结束点      Declare @StartRecord int      Declare @EndRecord int           Set @StartRecord=(@pageIndex-1)*@PageSize+1      Set @EndRecord=@StartRecord+@pageSize-1      --继续合成SQL语句      Set @sql=@sql+') As '+@tablename+' Where rowID Between '+Convert(varchar(50),@StartRecord)+' And '+Convert(varchar(50),@EndRecord)      Exec(@sql)      If @@Error<>0          Begin              RollBack Tran              Return -1          End      Else          Begin              Commit Tran              Return @totalRecord --返回记录总数          End  End

总结

以上是内存溢出为你收集整理的MSSQL2005 分页存储过程全部内容,希望文章能够帮你解决MSSQL2005 分页存储过程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1178775.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存