欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

[數(shù)據(jù)庫] 通用分頁存儲過程

 更新時間:2007年02月09日 00:00:00   作者:  

以下這個是我自己寫的一個分頁通用存儲過程

該方法也就是上頭所提到的行計數(shù)的方式,在系統(tǒng)中使用發(fā)現(xiàn)過很多次問題,這是最終版本應(yīng)該不會再有什么算法之類的問題出現(xiàn)了

這個存儲過程的原理就是“譬如現(xiàn)在要第5頁數(shù)據(jù),每頁是16行,那么現(xiàn)在要的數(shù)據(jù)就是在前80行,并且不在原來的64行內(nèi)的”
復(fù)制代碼 代碼如下:

Create  Proc proc_PageRecordset 
@queryStr nvarchar(2000),  --查詢語句,用來獲取要顯示的數(shù)據(jù)必須滿足的要求@keyField nvarchar (72), --主鍵 
@pageSize int,  --每頁的行數(shù)@pageNumber int, --第幾頁 
@filter varChar(2000)='', --過濾,where后頭的語句 
@order varChar(200)='' --排序方式AS 
BEGIN 
DECLARE @sqlText AS nvarchar(4000) 
DECLARE @sqlTable AS nvarchar(4000) 
DECLARE @sqlText_PageCount  AS nvarchar(4000) 

set @filter=replace(@filter,'#','''') 

--這是最后一次所發(fā)現(xiàn)的bug,因?yàn)樵谂判蛑斜仨毚_定一個排出來的位置一樣的table,不能讓a在這次排第2,那次又排第5 
if CharIndex(@keyField,@order)=0 
Begin 
Set @order=@order+','+@keyField 
End 

if (Rtrim(@filter)='') 
begin 
SET @sqlTable = 'SELECT TOP ' + CAST((@pageNumber + 1) * @pageSize AS varchar(30)) + ' ' + @queryStr + ' ' + @order 
SET @sqlText_PageCount = 'Select Count(*) from (select ' +@queryStr+ ' ) as Table_temp' 
end 
else 
begin 
SET @sqlTable = 'SELECT TOP ' + CAST((@pageNumber + 1) * @pageSize AS varchar(30)) + ' ' + @queryStr + ' and ' + @filter + @order 
SET @sqlText_PageCount = 'Select Count(*) AS MyCount from (select ' +@queryStr+ ' and ' + @filter +' ) as Table_temp' 
end 
--譬如現(xiàn)在要第5頁數(shù)據(jù),每頁是16行,那么現(xiàn)在要的數(shù)據(jù)就是在前80行,并且不在原來的64行內(nèi)的 
SET @sqlText = 
'SELECT TOP ' + CAST(@pageSize AS varchar(30)) + ' * ' +  
'FROM (' + @sqlTable + ') AS tableA ' + 
'WHERE ' + @keyField + ' NOT IN(SELECT TOP ' + 
CAST(@pageNumber * @pageSize AS varchar(30)) + ' ' + @keyField +  
' FROM (' + @sqlTable + ') AS tableB)' 

EXEC (@sqlText) 

exec (@sqlText_PageCount) 

END 

GO

相關(guān)文章

  • 一次數(shù)據(jù)庫查詢超時優(yōu)化問題的實(shí)戰(zhàn)記錄

    一次數(shù)據(jù)庫查詢超時優(yōu)化問題的實(shí)戰(zhàn)記錄

    當(dāng)MySQL服務(wù)器出現(xiàn)異常(慢),首先要考慮是否因SQL語句引起數(shù)據(jù)庫慢,下面這篇文章主要給大家介紹了一次數(shù)據(jù)庫查詢超時優(yōu)化問題的實(shí)戰(zhàn)記錄,需要的朋友可以參考下
    2021-10-10
  • 記一次SQL優(yōu)化的實(shí)戰(zhàn)記錄

    記一次SQL優(yōu)化的實(shí)戰(zhàn)記錄

    作為開發(fā)人員,我們免不了與sql打交道,有些sql可能在業(yè)務(wù)的最開始,執(zhí)行是毫無問題的,但是隨著業(yè)務(wù)量的提升以及業(yè)務(wù)復(fù)雜度的加 深,可能之前的sql就會需要優(yōu)化了,下面這篇文章主要給大家介紹了關(guān)于一次SQL優(yōu)化的實(shí)戰(zhàn)記錄,需要的朋友可以參考下
    2022-07-07
  • 數(shù)據(jù)庫分頁查詢方法

    數(shù)據(jù)庫分頁查詢方法

    在這里主要講解一下MySQL、SQLServer2000(及SQLServer2005)和ORCALE三種數(shù)據(jù)庫實(shí)現(xiàn)分頁查詢的方法。
    2009-07-07
  • 分布式數(shù)據(jù)存儲系統(tǒng)的三要素

    分布式數(shù)據(jù)存儲系統(tǒng)的三要素

    大家好,本篇文章主要講的是分布式數(shù)據(jù)存儲系統(tǒng)的三要素,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • mycat在windows環(huán)境下的安裝和啟動

    mycat在windows環(huán)境下的安裝和啟動

    這篇文章主要介紹了mycat在windows環(huán)境下的安裝和啟動過程,需要的朋友參考下吧
    2018-03-03
  • 關(guān)于數(shù)據(jù)庫設(shè)計中主鍵問題的思考

    關(guān)于數(shù)據(jù)庫設(shè)計中主鍵問題的思考

    數(shù)據(jù)庫主鍵在數(shù)據(jù)庫中占有重要地位。主鍵的選取策略決定了系統(tǒng)是否可靠、易用、高效。本文探討了數(shù)據(jù)庫設(shè)計過程當(dāng)中常見的主鍵選取策略,并剖析了其做主鍵的優(yōu)缺點(diǎn),提出了相應(yīng)的解決問題的方法
    2013-08-08
  • SQL 優(yōu)化經(jīng)驗(yàn)總結(jié)34條

    SQL 優(yōu)化經(jīng)驗(yàn)總結(jié)34條

    我們要做到不但會寫SQL,還要做到寫出性能優(yōu)良的SQL,以下為筆者學(xué)習(xí)、摘錄、并匯總部分資料與大家分享!
    2009-07-07
  • 簡單分析SQLite4的一些設(shè)計改變

    簡單分析SQLite4的一些設(shè)計改變

    這篇文章主要介紹了SQLite4的一些設(shè)計改變,SQLite作為內(nèi)嵌式數(shù)據(jù)庫使用起來非常輕便,需要的朋友可以參考下
    2015-07-07
  • 解決Navicat數(shù)據(jù)庫連接成功但密碼忘記的問題

    解決Navicat數(shù)據(jù)庫連接成功但密碼忘記的問題

    這篇文章給大家介紹了Navicat數(shù)據(jù)庫連接成功,密碼忘記如何解決,文中給大家介紹了兩種解決方法,有詳細(xì)的圖文講解,需要的朋友可以參考下
    2023-08-08
  • 詳解SQL中Group By的使用教程

    詳解SQL中Group By的使用教程

    這篇文章主要介紹了SQL中Group By的使用,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02

最新評論