我認為比較好的分頁儲存過程

2021-04-19 20:29:39 字數 2371 閱讀 6890

create procedure sp_conn_sort

(@tblname   varchar(255),       -- 表名

@strgetfields varchar(1000) = '*', -- 需要返回的列

@fldname varchar(255)='',      -- 排序的欄位名

@pagesize   int = 40,          -- 頁尺寸

@pageindex int = 1,           -- 頁碼

@docount bit = 0,   -- 返回記錄總數, 非 0 值則返回

@ordertype bit = 0, -- 設定排序型別, 非 0 值則降序

@strwhere varchar(1500)='' -- 查詢條件 (注意: 不要加 where))as

declare @strsql   varchar(5000)       -- 主語句

declare @strtmp   varchar(110)        -- 臨時變數

declare @strorder varchar(400)        -- 排序型別

if @docount != 0

begin

if @strwhere !=''

set @strsql = 'select count(*) as total from ' + @tblname + ' where '+@strwhere

else

set @strsql = 'select count(*) as total from ' + @tblname

end

--以上**的意思是如果@docount傳遞過來的不是0,就執行總數統計。以下的所有**都是@docount為0的情況

else

begin

if @ordertype != 0

begin

set @strtmp = '<(select min'

set @strorder = ' order by ' + @fldname +' desc'

--如果@ordertype不是0,就執行降序,這句很重要!

endelse

begin

set @strtmp = '>(select max'

set @strorder = ' order by ' + @fldname +' asc'

endif @pageindex = 1

begin

if @strwhere != ''  

set @strsql = 'select top ' + str(@pagesize) +' '+@strgetfields

+ ' from ' + @tblname + ' where ' + @strwhere + ' ' + @strorder

else

set @strsql = 'select top ' + str(@pagesize) +' '+@strgetfields

+ ' from '+ @tblname + ' '+ @strorder

--如果是第一頁就執行以上**,這樣會加快執行速度

endelse

begin

--以下**賦予了@strsql以真正執行的sql**

set @strsql = 'select top ' + str(@pagesize) +' '+@strgetfields

+ ' 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) +' '+@strgetfields

+ ' from '

+ @tblname + ' where ' + @fldname + '' + @strtmp + '('

+ @fldname + ') from (select top ' + str((@pageindex-1)*@pagesize) + ' '

+ @fldname + ' from ' + @tblname + ' where ' + @strwhere + ' '

+ @strorder + ') as tbltmp) and ' + @strwhere + ' ' + @strorder

endend  

exec (@strsql)

我認為比較好的分頁儲存過程

create procedure sp conn sort tblname varchar 255 表名 strgetfields varchar 1000 需要返回的列 fldname varchar 255 排序的欄位名 pagesize int 40,頁尺寸 pageindex int 1,頁...

比較好的論壇 個人認為

特點 地球人都知道。最喜愛的版塊 文化 it業界 讀書 體育 bbs.sina.com.cn 2.凱迪社群 最喜愛的版塊 貓眼看人 經濟風雲 笑話人生等 3.搜奇娛樂社群 最喜愛的版塊 精品影院 奇聞雜談 黑樓孤魂 帖圖等 4.天崖社群 特點 人氣旺!文人雅士,舞文弄墨!5.中國站長論壇 特點 站長...

個人認為比較好的計算機書籍

程式設計師的自我修養 全名 程式設計師的自我修養 鏈結 裝載與庫 知其然,更知其所以然 潘愛民 這本書主要介紹系統軟體的執行機制和原理,涉及在windows和linux兩個系統平台上,乙個應用程式在編譯 鏈結和執行時刻所發生的各種事項,包括 指令是如何儲存的,庫檔案如何與應用程式 靜態鏈結,應用程式...