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

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

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

    cAng^Er

    不懂我的人 , 離不了我 , 該了解了解我 !而懂我的人 , 更離不了我 , 因為他們愛我 。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      30 隨筆 :: 16 文章 :: 18 評論 :: 0 Trackbacks

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


    四種方法取表里n到m條紀錄:

    1.
    select top m * into 臨時表(或表變量) 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

    如果你在執行select identity(int) id0,* into #temp from tablename這條語句的時候報錯,那是因為你的DB中間的select into/bulkcopy屬性沒有打開要先執行:
    exec sp_dboption 你的DB名字,'select into/bulkcopy',true

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

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

    SET
     QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    --名稱:分頁存儲過程
    --
    使用示例 EXEC sp_PageIndex '*',' FROM StuSources ',2,10
    --
    注意 
    --
    目前還沒有對輸入的參數進行嚴格的驗證
    --
    默認為輸入都是合法有效的

    ALTER  PROC sp_PageIndex
     
    @sqlSelect varchar(800--SELECT 后面 FROM 前面 的 字段 不用包含SELECT
    ,@sqlFrom varchar(800--FROM 后面 的 字段 包含FROM
    ,@countPerPage int -- 每頁數據行數
    ,@toPage int --要轉到的頁碼

    AS

    BEGIN


    -- 根據每頁數據行數 和 要轉到的頁碼 得到 數據起止點
    Declare @start int
    Declare @end int

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


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

    Declare @sqlStr varchar(800)
    -- 創建數據源到臨時表
    SELECT @sqlStr = 'SELECT Identity(int,1,1) AS RowIndex,'
    SELECT @sqlStr = @sqlStr + rtrim(@sqlSelect+ ' INTO  '+ @tmpTable 
    SELECT @sqlStr = @sqlStr + rtrim(@sqlFrom
    -- 查詢臨時表 得到所需要的數據
    SELECT @sqlStr = @sqlStr + ' '+'SELECT '+ rtrim(@sqlSelect+' FROM ' + @tmpTable 
    SELECT @sqlStr = @sqlStr + ' WHERE  RowIndex BETWEEN ' + Convert(char,@start+ " AND " + Convert(char,@end)
    -- 刪除臨時表
    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) 評論(4)  編輯  收藏 所屬分類: |:數 據 庫:|

    評論

    # re: sql2000 分頁查詢 2007-01-18 20:49 劍事
    網上有完整的存儲過程可以用  回復  更多評論
      

    # re: sql2000 分頁查詢 2009-03-17 12:22 牛腩
    好是好,不過我在做的時候發現個問題..如果你是自己出錢買的空間的話,網上提供的MSSQL給你的賬號都設置了權限的,不能使用EXECUTE ...所以這個存儲過程如果是用于自己買的空間的話就不成了..唉...  回復  更多評論
      

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

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


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产精品亚洲A∨天堂不卡| 可以免费观看一级毛片黄a| 亚洲AV永久精品爱情岛论坛| 国产免费播放一区二区| 区久久AAA片69亚洲| 久久久久久久久久久免费精品| 老司机亚洲精品影视www| 99久久99这里只有免费的精品| 亚洲国产精品嫩草影院在线观看| 人人玩人人添人人澡免费| 野花香在线视频免费观看大全| 亚洲日韩av无码| 免费国产黄网站在线观看可以下载 | 国产亚洲免费的视频看| 久久免费公开视频| 亚洲国产超清无码专区| 成人一a毛片免费视频| 久久亚洲中文字幕精品有坂深雪 | 久久久久久成人毛片免费看| 亚洲成av人片不卡无码| 午夜视频在线在免费| 视频免费1区二区三区| 亚洲成人午夜在线| 国产免费丝袜调教视频| 国产精品无码亚洲精品2021 | 亚洲一区二区三区高清| 麻豆最新国产剧情AV原创免费| 亚洲av成本人无码网站| 无码一区二区三区免费视频| 亚洲国产精品成人综合色在线| 亚洲高清国产拍精品青青草原| a级毛片免费播放| 国产精品亚洲一区二区麻豆| 超清首页国产亚洲丝袜| 国产妇乱子伦视频免费| 色屁屁在线观看视频免费| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲视频在线精品| 50岁老女人的毛片免费观看| 精品国产日韩亚洲一区91| 亚洲成AV人片一区二区密柚|