--調用方法: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 分頁存儲過程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
mysql-存儲過程
雙子城
2019-02-24 13:43:57
存儲過程的調試
vaxvax0000
2019-02-23 12:58:30
存儲過程的調用(帶out)
vaxvax0000
2019-02-23 12:58:30
Java調用存儲過程
小浩51
2019-02-23 00:02:06
MS SQLSERVER通用存儲過程分頁
xiaopinzi
2019-02-23 00:01:43
Mysql 存儲過程應用
藝晨光
2019-02-22 23:51:23
mysql存儲過程
ting2junshui
2019-02-22 23:29:27
Django-自定義分頁
jedi911
2019-02-23 00:42:19
JS對數據分頁的封裝方法
rqlipeng
2019-02-22 23:54:03
使用GridView自帶分頁的代碼
adai6666
2019-02-22 23:39:28
win8 sqlserver2005 安裝
凌晨逗小喵
2019-02-23 13:13:15