Create PROCEDURE [dbo].[proc_DataPages]
           @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
           @RecountCount int=0 output
          AS
          BEGIN
          /*

          declare @RecountCount int

          exec [proc_DataPages]
          @TableNames='DE_Dict',
          @PrimaryKey='',
          @Fields='*',
          @PageSize=10,
          @CurrentPage=1,
          @Filter='',
          @Order='DictOrder desc',
          @RecountCount=@RecountCount output
          print @RecountCount

          */
          set nocount on;
          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

          set @topRow= rtrim(ltrim(str(@PageSize*(@CurrentPage-1))))
          set @tempPageSize= rtrim(ltrim(str(@PageSize)))

          exec('set rowcount '+@tempPageSize+'select * from (select row_number() over ('+@Order+') rownumber,'+@Fields+' from '+@TableNames+' where '+@Filter+') tempTable where rownumber>'+@topRow+'set rowcount 0')

          /*計算總頁數*/
          declare @sql nvarchar(max)
          set @sql='select @RecountCount=count(1) from '+@TableNames+' where '+@Filter
          set @RecountCount=0
          exec sp_executesql @sql,N'@RecountCount int output',@RecountCount=@RecountCount output

          set nocount off;

          end

          posted on 2014-03-17 15:32 sanmao 閱讀(795) 評論(0)  編輯  收藏

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


          網站導航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 台东县| 永兴县| 靖江市| 江源县| 全椒县| 崇州市| 奉新县| 怀化市| 岳普湖县| 南乐县| 西安市| 阿克陶县| 鄂托克旗| 五台县| 晋中市| 中宁县| 凌海市| 衡水市| 哈密市| 永昌县| 邵阳市| 孟津县| 太湖县| 扎赉特旗| 津南区| 石屏县| 三明市| 榆中县| 濮阳县| 额敏县| 镇远县| 平顶山市| 泰来县| 水富县| 廊坊市| 庄河市| 六盘水市| 安泽县| 芜湖市| 庐江县| 平湖市|