国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 温泉县| 响水县| 望谟县| 牟定县| 长子县| 新闻| 溧阳市| 邓州市| 安泽县| 台中市| 万年县| 田东县| 星子县| 石楼县| 江源县| 青冈县| 都江堰市| 杭锦旗| 新田县| 河北区| 平遥县| 龙井市| 黄石市| 南城县| 绥棱县| 苏尼特左旗| 隆化县| 建水县| 石屏县| 镇宁| 襄樊市| 昭通市| 万宁市| 金阳县| 裕民县| 铜川市| 凤台县| 秦安县| 铁力市| 若尔盖县| 南部县|