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


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


    網站導航:
     
    主站蜘蛛池模板: 99视频精品全部免费观看| 添bbb免费观看高清视频| 成人毛片免费观看视频大全| 亚洲乱色熟女一区二区三区丝袜| 深夜福利在线免费观看| 夜色阁亚洲一区二区三区| 亚洲av纯肉无码精品动漫| 看全色黄大色大片免费久久| 亚洲欧好州第一的日产suv| 午夜老司机免费视频| 国产AV无码专区亚洲AV蜜芽| 日韩免费无砖专区2020狼| 亚洲精品V欧洲精品V日韩精品| 久久精品成人免费国产片小草| 亚洲熟妇无码AV在线播放| 日本高清不卡aⅴ免费网站| 成全高清视频免费观看| 亚洲精品动漫免费二区| 免费a级毛片18以上观看精品| 黄色网页免费观看| av在线亚洲欧洲日产一区二区| 久久免费香蕉视频| 久久久久亚洲AV无码永不| 免费人成大片在线观看播放电影 | 亚洲av无码专区国产乱码在线观看| 久久av免费天堂小草播放| 亚洲av无码乱码国产精品fc2| 99久久99热精品免费观看国产 | 美女黄色免费网站| 亚洲综合色自拍一区| 在线人成精品免费视频| 亚洲精品视频在线观看你懂的| a级毛片免费全部播放| 亚洲福利在线播放| 国产激情免费视频在线观看 | 两个人看的www免费| 亚洲一区二区三区精品视频| 亚洲成A人片在线观看无码3D| 久久免费观看国产99精品| 亚洲Av永久无码精品黑人| 亚洲熟妇无码另类久久久|