一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - 數據庫存儲過程分頁顯示

數據庫存儲過程分頁顯示

2019-10-21 14:58mssql教程網 Sql Server

數據庫存儲過程分頁顯示

注:需要建立索引

復制代碼代碼如下:


/* 
經測試,在 14483461 條記錄中查詢第 100000 頁,每頁 10 條記錄按升序和降序第一次時間均為 0.47 秒,第二次時間均為 0.43 秒,測試語法如下: 
exec GetRecordFromPage news,newsid,10,100000 
news 為 表名, newsid 為關鍵字段, 使用時請先對 newsid 建立索引。 
*/ 

/* 
函數名稱: GetRecordFromPage 
函數功能: 獲取指定頁的數據 
參數說明: @tblName 包含數據的表名 
@fldName 關鍵字段名 
@PageSize 每頁記錄數 
@PageIndex 要獲取的頁碼 
@OrderType 排序類型, 0 - 升序, 1 - 降序 
@strWhere 查詢條件 (注意: 不要加 where) 
作  者: 鐵拳 
郵  箱: [email protected]">[email protected] 
創建時間: 2004-07-04 
修改時間: 2004-07-04 
*/ 
Create PROCEDURE GetRecordFromPage 
@tblName varchar(255), -- 表名 
@fldName varchar(255), -- 字段名 
@PageSize int = 10, -- 頁尺寸 
@PageIndex int = 1, -- 頁碼 
@OrderType bit = 0, -- 設置排序類型, 非 0 值則降序 
@strWhere varchar(2000) = '' -- 查詢條件 (注意: 不要加 where) 
AS 

declare @strSQL varchar(6000) -- 主語句 
declare @strTmp varchar(1000) -- 臨時變量 
declare @strOrder varchar(500) -- 排序類型 

if @OrderType != 0 
begin 
set @strTmp = "<(select min" 
set @strOrder = " order by [" + @fldName +"] desc" 
end 
else 
begin 
set @strTmp = ">(select max" 
set @strOrder = " order by [" + @fldName +"] asc" 
end 

set @strSQL = "select top " + str(@PageSize) + " * from [" 
+ @tblName + "] where [" + @fldName + "]" + @strTmp + "([" 
+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " [" 
+ @fldName + "] from [" + @tblName + "]" + @strOrder + ") as tblTmp)" 
+ @strOrder 

if @strWhere != '' 
set @strSQL = "select top " + str(@PageSize) + " * from [" 
+ @tblName + "] where [" + @fldName + "]" + @strTmp + "([" 
+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " [" 
+ @fldName + "] from [" + @tblName + "] where " + @strWhere + " " 
+ @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder 

if @PageIndex = 1 
begin 
set @strTmp = "" 
if @strWhere != '' 
set @strTmp = " where (" + @strWhere + ")" 

set @strSQL = "select top " + str(@PageSize) + " * from [" 
+ @tblName + "]" + @strTmp + " " + @strOrder 
end 

exec (@strSQL) 

GO 
 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区精品久久 | 高跟翘臀老师后进式视频 | 日本视频一区在线观看免费 | 国产成人 免费观看 | 校花被扒开尿口折磨憋尿 | 国产青草亚洲香蕉精品久久 | 欧美贵妇videos办公室360 | 高h生子双性美人受 | 果冻传媒在线播放观看228集 | 糖心vlog麻豆精东影业传媒 | 免费高清在线视频色yeye | 99精品国产高清自在线看超 | 欧美在线播放一区二区 | 激情五色月 | 久久成人免费大片 | 手机看片黄色 | 美女用手扒开粉嫩的屁股 | 免费在线观看日本 | 扒开双腿羞辱调教play视频 | 高肉h护士办公室play | 国产精品特黄毛片 | 午夜精品久久久 | 女人把扒开给男人爽 | 欧美日韩一二三区免费视频观看 | 欧美成人精品福利在线视频 | 肉蒲在线观看 | 国产香蕉国产精品偷在线观看 | 亚洲狼人综合干 | 九九精品成人免费国产片 | 93版高校教师 | 日本一区二区免费在线 | 欧美日韩一区二区三区在线视频 | 欧美伊人久久久久久久久影院 | www.国产在线观看 | 久久九九有精品国产23百花影院 | 歪歪私人影院成人毛片 | 日韩不卡一区二区三区 | 成人网欧美亚洲影视图片 | 大胸纲手被羞羞漫画网站 | 美女脱了内裤打开腿让人桶网站o | 全是女性放屁角色的手游 |