<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精品热线在线观看免费视频| 欧洲精品成人免费视频在线观看| 免费黄网在线观看| 亚洲综合久久夜AV | 久久久久久久亚洲Av无码| 亚洲一线产品二线产品| 麻豆69堂免费视频| 久热免费在线视频| 日美韩电影免费看| 亚洲女同成av人片在线观看| 亚洲人成综合在线播放| rh男男车车的车车免费网站| 91久久精品国产免费一区| 日本19禁啪啪无遮挡免费动图| 亚洲线精品一区二区三区| 久久久久精品国产亚洲AV无码| 无码免费又爽又高潮喷水的视频| 久久综合九色综合97免费下载| 毛片免费观看视频| 亚洲欧洲精品无码AV| 亚洲狠狠成人综合网| 一级有奶水毛片免费看| 美女视频黄的全免费视频网站| 亚洲国产精品无码久久青草| 亚洲视频在线免费看| 免费在线观看自拍性爱视频| 8x成人永久免费视频| 亚洲av无码乱码在线观看野外 | 亚洲精品色在线网站| 久久免费线看线看| 国产人妖ts在线观看免费视频| 亚洲激情在线视频| 免费看美女午夜大片| 久久笫一福利免费导航| 亚洲精品无码久久一线|