alter PROCEDURE Pages
          @TableNames VARCHAR(200),     --表名,可以是多個表,但不能用別名
          @PrimaryKey VARCHAR(100),     --主鍵,可以為空,但@Order為空時該值不能為空
          @Fields     VARCHAR(800),         --要取出的字段,可以是多個表的字段,可以為空,為空表示select *
          @PageSize INT,             --每頁記錄數
          @CurrentPage INT,         --當前頁,0表示第1頁
          @Filter VARCHAR(200) = '',     --條件,可以為空,不用填 where
          @Order VARCHAR(200) = '' ,    --排序,可以為空,為空默認按主鍵升序排列,不用填 order by
          @ResultCount varchar(24)-------顯示的結果總數
          AS
          BEGIN
          declare @topRow varchar(12)
          declare @tempPageSize varchar(12)
          if(len(@Order)>0)
          begin
          set @Order=' order by '+@Order
          end
          else
          begin
          set @Order=' order by '+@PrimaryKey
          end
          if (len(@Filter)<1)
          begin
          set @Filter=' 1=1'
          end
          if(@CurrentPage-1<=0)
          set @CurrentPage=0
          if(len(rtrim(ltrim(@ResultCount)))>0)
          set @ResultCount='set rowcount '+ltrim(rtrim(@ResultCount))
          set @topRow= rtrim(ltrim(str(@PageSize*(@CurrentPage-1))))
          set @tempPageSize= rtrim(ltrim(str(@PageSize)))
          exec('SET NOCOUNT ON '+'
          '+@ResultCount+'
          set rowcount '+@tempPageSize+'
          select * from (select row_number() over ('+@Order+') rownumber,'+@Fields+' from '+@TableNames+' where '+@Filter+') tempTable where rownumber>'+@topRow+'
          set rowcount 0')
          end
          posted on 2009-02-12 17:39 sanmao 閱讀(694) 評論(0)  編輯  收藏

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


          網站導航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 华容县| 分宜县| 濮阳县| 宜兴市| 永顺县| 新丰县| 新建县| 怀来县| 延吉市| 内江市| 宁城县| 枣庄市| 荃湾区| 长丰县| 武隆县| 乌拉特中旗| 北辰区| 长治市| 克山县| 义马市| 贵州省| 格尔木市| 固原市| 施秉县| 屏边| 高雄市| 资兴市| 虞城县| 兖州市| 镶黄旗| 吉木萨尔县| 舟曲县| 临猗县| 株洲市| 全州县| 宣化县| 高邮市| 文昌市| 成安县| 奉化市| 合山市|