<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    cAng^Er

    不懂我的人 , 離不了我 , 該了解了解我 !而懂我的人 , 更離不了我 , 因?yàn)樗麄儛畚?。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      30 隨筆 :: 16 文章 :: 18 評(píng)論 :: 0 Trackbacks

    今天在網(wǎng)上看到了幾個(gè)解決sql2000的分頁查詢方法
    寫在這里(沒有測(cè)試)


    四種方法取表里n到m條紀(jì)錄:

    1.
    select top m * into 臨時(shí)表(或表變量) from tablename order by columnname -- 將top m筆插入
    set rowcount n
    select * from 表變量 order by columnname desc

    2.
    select top n * from
    (select top m * from tablename order by columnname) a
    order by columnname desc

    3.如果tablename里沒有其他identity列,那么:
    select identity(int) id0,* into #temp from tablename

    取n到m條的語句為:
    select * from #temp where id0 >=n and id0 <= m

    如果你在執(zhí)行select identity(int) id0,* into #temp from tablename這條語句的時(shí)候報(bào)錯(cuò),那是因?yàn)槟愕腄B中間的select into/bulkcopy屬性沒有打開要先執(zhí)行:
    exec sp_dboption 你的DB名字,'select into/bulkcopy',true

    4.如果表里有identity屬性,那么簡(jiǎn)單:
    select * from tablename where identitycol between n and m
    **********************************************
     *sql2000下 分頁存儲(chǔ)過程 **********************

    **********************************************

    SET
     QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    --名稱:分頁存儲(chǔ)過程
    --
    使用示例 EXEC sp_PageIndex '*',' FROM StuSources ',2,10
    --
    注意 
    --
    目前還沒有對(duì)輸入的參數(shù)進(jìn)行嚴(yán)格的驗(yàn)證
    --
    默認(rèn)為輸入都是合法有效的

    ALTER  PROC sp_PageIndex
     
    @sqlSelect varchar(800--SELECT 后面 FROM 前面 的 字段 不用包含SELECT
    ,@sqlFrom varchar(800--FROM 后面 的 字段 包含F(xiàn)ROM
    ,@countPerPage int -- 每頁數(shù)據(jù)行數(shù)
    ,@toPage int --要轉(zhuǎn)到的頁碼

    AS

    BEGIN


    -- 根據(jù)每頁數(shù)據(jù)行數(shù) 和 要轉(zhuǎn)到的頁碼 得到 數(shù)據(jù)起止點(diǎn)
    Declare @start int
    Declare @end int

    set @end = @countPerPage * @toPage
    set @start = @countPerPage * (@toPage - 1+ 1


    -- 臨時(shí)表名稱 可隨機(jī)命名
    Declare @tmpTable varchar(10)
    SET @tmpTable ='#tmp'

    Declare @sqlStr varchar(800)
    -- 創(chuàng)建數(shù)據(jù)源到臨時(shí)表
    SELECT @sqlStr = 'SELECT Identity(int,1,1) AS RowIndex,'
    SELECT @sqlStr = @sqlStr + rtrim(@sqlSelect+ ' INTO  '+ @tmpTable 
    SELECT @sqlStr = @sqlStr + rtrim(@sqlFrom
    -- 查詢臨時(shí)表 得到所需要的數(shù)據(jù)
    SELECT @sqlStr = @sqlStr + ' '+'SELECT '+ rtrim(@sqlSelect+' FROM ' + @tmpTable 
    SELECT @sqlStr = @sqlStr + ' WHERE  RowIndex BETWEEN ' + Convert(char,@start+ " AND " + Convert(char,@end)
    -- 刪除臨時(shí)表
    SELECT @sqlStr = @sqlStr + ' '+'DROP TABLE '+@tmpTable
    EXEC (@sqlStr)


    END


    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    posted on 2007-01-18 10:00 cAng^Er 閱讀(2317) 評(píng)論(4)  編輯  收藏 所屬分類: |:數(shù) 據(jù) 庫:|

    評(píng)論

    # re: sql2000 分頁查詢 2007-01-18 20:49 劍事
    網(wǎng)上有完整的存儲(chǔ)過程可以用  回復(fù)  更多評(píng)論
      

    # re: sql2000 分頁查詢 2009-03-17 12:22 牛腩
    好是好,不過我在做的時(shí)候發(fā)現(xiàn)個(gè)問題..如果你是自己出錢買的空間的話,網(wǎng)上提供的MSSQL給你的賬號(hào)都設(shè)置了權(quán)限的,不能使用EXECUTE ...所以這個(gè)存儲(chǔ)過程如果是用于自己買的空間的話就不成了..唉...  回復(fù)  更多評(píng)論
      

    # re: sql2000 分頁查詢 2010-01-11 09:36 smallcol
    這種方式如果數(shù)據(jù)有100W條的話那不是很慢?
    光insert #tmp表都要好幾分鐘  回復(fù)  更多評(píng)論
      

    # re: sql2000 分頁查詢 2010-06-18 16:39 Mm
    最失敗的就是上面的分頁。。  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 日日摸日日碰夜夜爽亚洲| 野花高清在线观看免费3中文 | 亚洲人成电影网站色www| 亚洲成色WWW久久网站| 亚洲国模精品一区 | 亚洲另类无码专区首页| 666精品国产精品亚洲| 亚洲中文字幕无码中文字在线| 国产高清视频在线免费观看| 亚洲视频免费在线播放| 免费无码一区二区三区蜜桃| 国产成人自产拍免费视频| 美国毛片亚洲社区在线观看| 亚洲1区1区3区4区产品乱码芒果 | 一个人看www免费高清字幕| 亚洲国产精品ⅴa在线观看| 亚洲一区免费视频| 亚洲小说图片视频| 久久久久亚洲AV无码观看 | 无码AV片在线观看免费| 国产一级在线免费观看| 九九久久精品国产免费看小说| 色偷偷亚洲男人天堂| 狠狠入ady亚洲精品| 亚洲av永久无码精品网址| 亚洲色大成网站www尤物| 日韩亚洲产在线观看| 中文字幕精品三区无码亚洲| 国产色在线|亚洲| 亚洲精品天堂在线观看| 亚洲午夜无码久久久久小说| 亚洲色成人网站WWW永久四虎| 99久久国产亚洲综合精品| 亚洲综合av一区二区三区不卡| 精品亚洲国产成人| 亚洲午夜无码久久| 精品国产日韩亚洲一区在线| 一区二区三区免费在线观看| 韩国免费a级作爱片无码| 免费成人在线视频观看| 91香蕉国产线观看免费全集|