Create PROCEDURE [dbo].[proc_DataPages]
           @TableNames VARCHAR(200),     --表名,可以是多個(gè)表,但不能用別名
           @PrimaryKey VARCHAR(100),     --主鍵,可以為空,但@Order為空時(shí)該值不能為空
           @Fields     VARCHAR(800),         --要取出的字段,可以是多個(gè)表的字段,可以為空,為空表示select *
           @PageSize INT,             --每頁(yè)記錄數(shù)
           @CurrentPage INT,         --當(dāng)前頁(yè),0表示第1頁(yè)
           @Filter VARCHAR(200) = '',     --條件,可以為空,不用填 where
           @Order VARCHAR(200) = '',     --排序,可以為空,為空默認(rèn)按主鍵升序排列,不用填 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')

          /*計(jì)算總頁(yè)數(shù)*/
          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 閱讀(794) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          常用鏈接

          留言簿(5)

          隨筆分類(lèi)

          隨筆檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 呼图壁县| 天镇县| 兰溪市| 广平县| 榕江县| 巧家县| 迁安市| 西藏| 海门市| 福州市| 广汉市| 棋牌| 麟游县| 龙岩市| 金沙县| 岗巴县| 喀什市| 葵青区| 张家口市| 凌源市| 临泉县| 特克斯县| 涿州市| 东城区| 襄城县| 海兴县| 舟山市| 鲁甸县| 炎陵县| 恩平市| 兰考县| 木兰县| 紫阳县| 内黄县| 禄劝| 梅州市| 临海市| 沅陵县| 庄浪县| 岑溪市| 秦安县|