<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
    最失敗的就是上面的分頁。。  回復  更多評論
      


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品国产啊女成拍色拍| 亚洲AV无码日韩AV无码导航| 色偷偷女男人的天堂亚洲网| 69av免费观看| 亚洲成a人片在线网站| 国产精品久久免费| 亚洲一欧洲中文字幕在线| 99无码人妻一区二区三区免费| 亚洲制服丝袜一区二区三区| 99re热精品视频国产免费| 亚洲色偷偷av男人的天堂| 亚洲免费视频观看| 亚洲无吗在线视频| 国产成人高清精品免费鸭子| 黄色网址免费在线| 亚洲永久精品ww47| 免费A级毛片在线播放| 精品亚洲AV无码一区二区三区| 好吊妞在线新免费视频| 免费无毒a网站在线观看| 亚洲熟妇无码乱子AV电影| 无码人妻AV免费一区二区三区| 亚洲欧洲自拍拍偷午夜色| 久久不见久久见中文字幕免费| 亚洲成a人片在线不卡一二三区 | 亚洲国产精品无码久久久不卡| 免费观看久久精彩视频| 亚洲国产精品综合一区在线| 成人免费视频一区| 国产免费黄色无码视频 | 成年女人看片免费视频播放器| 国产亚洲福利一区二区免费看| 亚洲熟妇无码另类久久久| 91麻豆最新在线人成免费观看| 亚洲爆乳少妇无码激情| 亚洲综合熟女久久久30p| 久久久久久国产a免费观看黄色大片| 国产情侣激情在线视频免费看| 国产成人精品日本亚洲11| 亚洲精品亚洲人成在线观看下载| 无人在线观看免费高清|