又很久沒寫部落格,今天記錄乙個sqlserver通用分頁儲存過程(適用於sqlserver2000及以上版本)
1.支援連表
2.支援條件查詢
use [mydb] go
/****** object: storedprocedure [dbo].[sp_commonpage]
set quoted_identifier on go
------------------------------------ --用途:分頁儲存過程(對有主鍵的表效率極高) --說明: ------------------------------------
create procedure [dbo].[sp_commonpage]
@tblname varchar(255), -- 表名
@fldname varchar(255), -- 主鍵欄位名
@pagesize int = 10, -- 頁尺寸
@pageindex int = 1, -- 頁碼
@isrecount bit = 0, -- 返回記錄總數, 非 0 值則返回
@ordertype bit = 0, -- 設定排序型別, 非 0 值則降序
@strwhere varchar(1000) = '' -- 查詢條件 (注意: 不要加 where)
asdeclare @strsql varchar(6000) -- 主語句
declare @strtmp varchar(100) -- 臨時變數(查詢條件過長時可能會出錯,可修改100為1000)
declare @strorder varchar(400) -- 排序型別
if @ordertype != 0
begin
set @strtmp = '<(select min'
set @strorder = ' order by [' + @fldname +'] desc'
endelse
begin
set @strtmp = '>(select max'
set @strorder = ' order by [' + @fldname +'] asc'
endset @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
endif @isrecount != 0
set @strsql = 'select count(*) as total from [' + @tblname + ']'+' where ' + @strwhere
exec (@strsql)
go
分享乙個通用資料庫分頁方案
技術架構 web層可以是任意的mvc框架,目前只實現了springmvc和struts的版本 struts版已經在weblogic7下跑通,tomcat5還不行 dao層也沒有任何限制,只要按照範例中的模式來做既可 最終頁面上用乙個標籤來顯示翻頁按鈕等。btw 誰有興趣想寫個webwork版本的,可...
乙個通用分頁類
1 功能 這個通用分頁類實現的功能是輸入頁數 第幾頁 和每頁的數目,就能獲得相應的資料。2 實現原理 分頁的實現通常分為兩種,一種是先把資料全查詢出來再分頁,一種是需要多少查詢多少,這裡使用第二種,所以就需要先實現在dao層能夠查詢一定範圍內的資料,這裡就實現通過id作為鍵值,查詢一定範圍內的資料的...
乙個通用分頁查詢方法
為了簡化開發人員的 想寫乙個通用的分頁查詢方法,為了提交效率,其中有一段是分解hql語句,組成查詢總數的hql語句,實現如下 public paginationsupport findpagebyquery final string hsql,final object values,final in...