亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

百萬級分頁存儲過程該進版

2024-07-21 02:48:31
字體:
來源:轉載
供稿:網友
百萬級分頁存儲過程該進版

--經過一段時間的使用,這個存儲過程發現了一些不完美的地方,主要體現在排序的問題上面,一般排序都應該是把最新的顯示在前面的,修改前的只能指定一個字段進行排序,而且還需要指定是按降序還是升序來排,而且使用的時候排序只在當前也排序,而不是針對所有記錄來排序,現修改后版本如下:可以指定多個字段排序,并且是針對所有滿足條件的記錄進行排序。

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- Batch submitted through debugger: SQLQuery8.sql|0|0|C:/Users/Administrator/AppData/Local/Temp/~vsBEFB.sql/****** Object: StoredPRocedure [dbo].[Proc_PageData] Script Date: 03/12/2012 16:38:59 ******/

CREATE PROCEDURE [dbo].[Proc_PageData](@tblName nvarchar(200), ----要顯示的表或多個表的連接@fldName nvarchar(2000) = '*', ----要顯示的字段列表@pageSize int = 100, ----每頁顯示的記錄個數@page int = 1, ----要顯示那一頁的記錄@pageCount int = 1 output, ----查詢結果分頁后的總頁數@Counts int = 1 output, ----查詢到的記錄數@ID nvarchar(50), ----主表的主鍵@fldSort nvarchar(1000) ='', ----排序字段列表或條件@Sort bit = 0, ----排序方法,0為升序,1為降序@strCondition nvarchar(2000) ='' ----查詢條件,不需where)ASSET NOCOUNT ONDeclare @sqlTmp nvarchar(1000) ----存放動態生成的SQL語句Declare @strTmp nvarchar(1000) ----存放取得查詢結果總數的查詢語句Declare @strID nvarchar(1000) ----存放取得查詢開頭或結尾ID的查詢語句Declare @sqlSort nvarchar(200) ----存放臨時生成的排序條件Declare @intCounts int ----要移動的記錄數Declare @BeginID int ----開始的IDDeclare @EndID int ----結束的IDdeclare @tempID intdeclare @topstr nvarchar(1000)declare @conditionStr nvarchar(1000)--------首先生成排序方法-----------if @Sort=0 --升序--beginif @fldSort <>''set @sqlSort = ' Order by ' + @fldSort elseset @sqlSort = ' Order by ' + @ID +' DESC'--end--else --降序--begin--if @fldSort='' -- set @sqlSort = ' Order by ' + @ID + ' DESC '--else -- set @sqlSort = ' Order by ' + @fldSort --end--------生成查詢語句----------此處@strTmp為取得查詢結果數量的語句if @strCondition='' --沒有設置顯示條件beginset @sqlTmp = @fldName + ' From ' + @tblNameset @strTmp = 'select @Counts=Count(' + @ID + ') FROM '+@tblNameset @strID = ' From ' + @tblName+ ' '+@sqlSortendelsebeginset @sqlTmp = + @fldName + 'From ' + @tblName set @strTmp = 'select @Counts=Count(' + @ID + ') FROM '+@tblName + ' where ' + @strConditionset @strID = ' From ' + @tblName + ' where ' + @strCondition + ' '+@sqlSortend--print @strID----取得查詢結果總數量-----exec sp_executesql @strTmp,N'@Counts int out ',@Counts out--取得分頁總數if @Counts <= @pageSizeset @pageCount = 1elsebeginif @Counts%@PageSize=0 set @pageCount = (@Counts / @pageSize) elseset @pageCount = (@Counts / @pageSize) + 1endset @topstr=' top '+Convert(nvarchar,@pageSize)--計算要移動的記錄數if @page = 1 --加快處理begin-----取得分頁后此頁的第一條記錄的IDset @conditionStr=''end elsebegin-----取得分頁后此頁的第一條記錄的IDif @pageCount>1begindeclare @topnum intset @topnum=(@page-1)*@PageSizeset @conditionStr=' '+@ID+' not in(select top '+ Convert(nvarchar,@topnum)+' '+@ID+' from '+@tblName+@sqlSort+')'endelseset @conditionStr=''end --print @strIDif @BeginID>@EndIDbegin set @tempID=@BeginID set @BeginID=@EndID set @EndID=@tempIDend------恢復系統設置-----set rowcount 0SET NOCOUNT ON------返回查詢結果-----if @strCondition=''begin if @conditionStr='' set @strTmp = 'select ' + @topstr + ' ' + @sqlTmp else set @strTmp = 'select ' + @topstr + ' ' + @sqlTmp + ' where ' + @conditionStrendelsebeginif @conditionStr=''set @strTmp = 'select ' + @topstr + ' ' + @sqlTmp + ' where ' + @strConditionelseset @strTmp = 'select ' + @topstr + ' ' + @sqlTmp + ' where ' + @strCondition +' and '+@conditionStrend--if @conditionStr<>''--set @strTmp=@strTmp+@conditionStrif @sqlSort<>''set @strTmp = @strTmp+@sqlSort--print @strTmp--print @topstrexec sp_executesql @strTmp


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲国产成人| 国产亚洲欧美另类中文| 成人激情av在线| 欧美黄色性视频| 欧美性色xo影院| 亚洲黄色免费三级| 日韩欧美国产中文字幕| 久久精品亚洲精品| 欧美午夜片欧美片在线观看| 亚洲精品久久久久久久久久久久| 色天天综合狠狠色| 国产日韩欧美自拍| 成人激情在线观看| 久久精品久久精品亚洲人| 欧美高清自拍一区| 三级精品视频久久久久| 日韩av网站在线| 精品动漫一区二区三区| 欧美另类在线播放| 一二美女精品欧洲| 97在线视频免费观看| 亚洲国产精彩中文乱码av| 欧美成人午夜剧场免费观看| 国产日本欧美一区二区三区| 亚洲美女精品成人在线视频| 亚洲欧美中文日韩v在线观看| 日韩av免费观影| 亚洲国产精品成人va在线观看| 日韩毛片在线看| 精品视频久久久久久| 亚洲国产成人久久综合一区| 国产精品久久久久久久久久99| 精品国产乱码久久久久酒店| 欧美影院在线播放| 91久久久国产精品| 欧美成人三级视频网站| 亚州精品天堂中文字幕| 日韩www在线| 亚洲欧美激情视频| 日韩av日韩在线观看| 亚洲精品福利在线观看| 欧美性猛交xxxx免费看漫画| 欧美激情免费视频| 精品国产精品三级精品av网址| 国产精品入口免费视频一| 国产亚洲xxx| 久久天天躁狠狠躁夜夜爽蜜月| 日本高清+成人网在线观看| 亚洲色图欧美制服丝袜另类第一页| 日韩欧美一区二区在线| 久久精品视频va| 国产欧美日韩亚洲精品| 国产午夜精品麻豆| 久久久视频精品| 91亚洲永久免费精品| 51视频国产精品一区二区| 最近免费中文字幕视频2019| 久久久久久久91| 最近2019年手机中文字幕| 亚洲精品福利资源站| 亚洲美女在线视频| 性欧美在线看片a免费观看| 亚洲a级在线观看| 成人欧美一区二区三区在线湿哒哒| 国产精品大片wwwwww| 亚洲第一av网站| 欧美精品中文字幕一区| 亚洲国产日韩精品在线| 97在线观看视频| 国产精品久久久久不卡| 国产精品成久久久久三级| 日本免费一区二区三区视频观看| 日本欧美精品在线| 懂色av中文一区二区三区天美| 欧美电影免费观看高清| 九九热在线精品视频| 国产欧美日韩视频| 欧美成人免费播放| 欧美性极品xxxx做受| 免费97视频在线精品国自产拍| 国内精品伊人久久| 久久精品99久久香蕉国产色戒| 亚洲理论在线a中文字幕| 精品久久久久久久久久久久久| 日韩成人在线观看| 亚洲www永久成人夜色| 日韩高清有码在线| 亚洲欧美一区二区三区在线| 日韩成人在线视频| 国产精品一区专区欧美日韩| 日韩成人激情影院| 国内揄拍国内精品少妇国语| 精品亚洲va在线va天堂资源站| 日韩中文视频免费在线观看| 久久影视电视剧免费网站| 国产精品高潮在线| 亚洲国产婷婷香蕉久久久久久| 最新亚洲国产精品| 亚洲国产精品va在线看黑人| 欧美成人精品在线播放| 精品视频在线观看日韩| 成人免费午夜电影| 亚洲va男人天堂| 欧美二区乱c黑人| 国产一区二区三区四区福利| 日韩av在线网站| 国产成人一区二| 欧美激情亚洲自拍| 8050国产精品久久久久久| 国产成人精品综合| 久久久久国产视频| 国产精品看片资源| 91av福利视频| 成人免费视频97| 国产不卡精品视男人的天堂| 久久色精品视频| 中文字幕日本精品| 亚洲www在线观看| 日本精品视频在线| 亚洲国产一区二区三区四区| 国产亚洲欧洲高清一区| 日本精品免费一区二区三区| 精品久久中文字幕久久av| 亚洲欧洲激情在线| 国产精品成人国产乱一区| 中文字幕视频一区二区在线有码| 久久久国产精品x99av| 97视频免费在线看| 国产精品∨欧美精品v日韩精品| 亚洲福利在线播放| 亚洲精品久久久一区二区三区| 91久久国产精品91久久性色| 久久成年人免费电影| 日韩不卡在线观看| 91国产中文字幕| 日本久久久久亚洲中字幕| 91在线高清视频| 国产欧美一区二区三区久久人妖| 懂色av中文一区二区三区天美| 亚洲男人天天操| 欧洲成人免费视频| 一道本无吗dⅴd在线播放一区| 精品国产一区二区三区久久| 美女福利视频一区| 69av成年福利视频| 中日韩美女免费视频网站在线观看| 亚洲专区在线视频| 欧美黄色成人网| 91久久久久久国产精品| 亚洲伊人第一页| 欧美极品美女视频网站在线观看免费| 日韩高清电影免费观看完整版| 最新中文字幕亚洲| 久久五月天色综合| 日本sm极度另类视频| 亚洲xxxx在线| 一区二区三区无码高清视频| 97色在线视频观看| 亚洲美女喷白浆| 国产精品电影在线观看| 亚洲第一区第二区| 欧美性猛交xxxxx免费看| 亚洲国产精彩中文乱码av在线播放| 日韩av影视综合网|