码迷,mamicode.com
首页 > 其他好文 > 详细

通用分页存储过程

时间:2015-04-22 17:54:19      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:

 1 CREATE PROCEDURE [dbo].[P_PageByRownumber]
 2 (
 3      @tbName VARCHAR(255),                        --表名
 4      @tbGetFields VARCHAR(max)= *,        --返回字段
 5      @OrderfldName VARCHAR(255),                 --排序的字段名
 6      @PageSize INT=20,                            --页尺寸
 7      @PageIndex INT=1,                            --页码
 8      @OrderType bit = 0,                          --0升序,非0降序
 9      @strWhere VARCHAR(max)=‘‘,                   --查询条件
10      @TotalCount INT OUTPUT                       --返回总记录数
11  )
12  AS
13  BEGIN
14      DECLARE @strSql VARCHAR(max)                  --主语句
15      DECLARE @strSqlCount NVARCHAR(max)            --查询记录总数主语句
16      DECLARE @strOrder VARCHAR(300)                -- 排序类型
17      DECLARE @RecoderCount int                     --总记录数
18     --------------总记录数---------------
19      set @strWhere=replace(@strWhere,&dyh,‘‘‘‘)
20      IF ISNULL(@strWhere,‘‘) <>‘‘ 
21           SET @strSqlCount=Select @TotalCout=count(*) from   + @tbName +  where 1=1 + @strWhere
22      ELSE SET @strSqlCount=Select @TotalCout=count(*) from   + @tbName
23      
24      --exec(@strSqlCount)
25      exec sp_executesql @strSqlCount,N@TotalCout int output,@TotalCount output
26      --------------分页------------
27      IF @PageIndex <= 0 SET @PageIndex = 1
28  
29      IF(@OrderType<>0) SET @strOrder= ORDER BY +@OrderfldName+ DESC 
30      ELSE SET @strOrder= ORDER BY +@OrderfldName+ ASC 
31  
32      SET @strSql=SELECT * FROM 
33      (SELECT ROW_NUMBER() OVER(+@strOrder+) RowNo,+ @tbGetFields+ FROM  + @tbName +  WHERE 1=1  + @strWhere+ ) tb 
34      WHERE tb.RowNo BETWEEN +str((@PageIndex-1)*@PageSize+1)+ AND  +str(@PageIndex*@PageSize)
35  
36      exec(@strSql)
37  END
38 GO

PS.查询条件参数字符串中单引号用‘&dyh‘代替,转义问题未解决,暂时用特殊字符替换处理了。

通用分页存储过程

标签:

原文地址:http://www.cnblogs.com/servant/p/4447963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!