国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

一個(gè)比較好的分頁存儲(chǔ)過程

2024-07-21 02:31:46
字體:
供稿:網(wǎng)友

create PROCEDURE Sp_Conn_Sort
(
@tblName   varchar(255),       -- 表名

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

@fldName varchar(255)='',      -- 排序的字段名

@PageSize   int = 40,          -- 頁尺寸

@PageIndex  int = 1,           -- 頁碼

@doCount  bit = 0,   -- 返回記錄總數(shù), 非 0 值則返回

@OrderType bit = 0,  -- 設(shè)置排序類型, 非 0 值則降序
@strWhere  varchar(1500)=''  -- 查詢條件 (注意: 不要加 where)
)
AS

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

declare @strTmp   varchar(110)        -- 臨時(shí)變量

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,就執(zhí)行總數(shù)統(tǒng)計(jì)。以下的所有代碼都是@doCount為0的情況

else

begin

 

if @OrderType != 0

begin

    set @strTmp = '<(select min'

set @strOrder = ' order by ' + @fldName +' desc'

--如果@OrderType不是0,就執(zhí)行降序,這句很重要!

end

else

begin

    set @strTmp = '>(select max'

    set @strOrder = ' order by ' + @fldName +' asc'

end

 

if @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

--如果是第一頁就執(zhí)行以上代碼,這樣會(huì)加快執(zhí)行速度

end

else

begin

--以下代碼賦予了@strSQL以真正執(zhí)行的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

end

end  

exec (@strSQL)

-----------------
如我你有更好的分頁存儲(chǔ)過程,希望能與之交流
QQ:271059875

http://www.cnblogs.com/wang123/archive/2006/08/05/468717.html

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 策勒县| 德化县| 新化县| 修武县| 冷水江市| 常山县| 清河县| 来凤县| 石门县| 常德市| 绥棱县| 兴宁市| 腾冲县| 博白县| 鱼台县| 中卫市| 虞城县| 阿合奇县| 龙川县| 莲花县| 确山县| 介休市| 边坝县| 临朐县| 梅河口市| 丽水市| 宝清县| 弥勒县| 武川县| 德江县| 顺义区| 沂水县| 新源县| 卓资县| 安陆市| 清苑县| 云安县| 天水市| 金湖县| 翼城县| 沙雅县|