if @PageIndex = 1

begin

if @strWhere != ’’

set @strSQL = ’select top ’ + str(@PageSize) +’ ’+@strGetFields+ ’ from [’+ @tblName +’] where ’ + @strWhere + ’ ’ + @strOrder

else

set @strSQL = ’select top ’ + str(@PageSize) +’ ’+@strGetFields+ ’ from [’+ @tblName +’] ’+ @strOrder

--如果是第一页就执行以上代码,这样会加快执行速度

end

else

begin

--以下代码赋予了@strSQL以真正执行的SQL代码

set @strSQL = ’select top ’ + str(@PageSize) +’ ’+@strGetFields+ ’ from [’ + @tblName +’] where [’ + @fldName + ’]’ + @strTmp + ’([’+ @fldName + ’])  
from (select top ’ + str((@PageIndex-1)*@PageSize) + ’ [’+ @fldName + ’] from [’+ @tblName +’]’ + @strOrder + ’) as tblTmp)’+ @strOrder

if @strWhere != ’’

set @strSQL = ’select top ’ + str(@PageSize) +’ ’+@strGetFields+ ’ from [’+ @tblName +’] where [’ + @fldName + ’]’ + @strTmp + ’([’+ @fldName + ’]) from (select top ’ + str((@PageIndex-1)*@PageSize) + ’ [’+ @fldName + ’]  
from [’+ @tblName +’] where ’ + @strWhere + ’ ’ + @strOrder + ’) as tblTmp) and ’ + @strWhere + ’ ’ + @strOrder

end

end

exec ( @strSQL)
GO

 
 

sqlserver存储过程实现多表分页的更多相关文章

  1. SqlServer存储过程应用二:分页查询数据并动态拼接where条件

    前言 开发中查询功能是贯穿全文的,我们来盘一盘使用存储过程分页查询,并且支持动态拼接where条件. 划重点:支持动态拼接where条件 对存储过程的使用有疑问的同学去[SqlServer存储过程的创 ...

  2. SQLServer存储过程实现单条件分页

    SQLServer Procedure Pagination_basic: ALTER PROCEDURE [qiancheng].[Pagination_basic] ( ), --name of ...

  3. sqlserver 存储过程学习笔记(二) 在项目中的应用<多表分页>

    (1)存储过程建立 USE [NewPlat] GO /****** Object:  StoredProcedure [dbo].[usp_PagingLarge]    Script Date: ...

  4. SQL 单表分页存储过程和单表多字段排序和任意字段分页存储过程

      第一种:单表多字段排序分页存储过程       --支持单表多字段查询,多字段排序 create PROCEDURE [dbo].[UP_GetByPageFiledOrder] ( ), --表 ...

  5. SqlServer判断数据库、表、字段、存储过程、函数是否存在

    原文:SqlServer判断数据库.表.字段.存储过程.函数是否存在 判断数据库是否存在 if exists (select * from sys.databases where name = '数据 ...

  6. SqlServer存储过程详解

    SqlServer存储过程详解 1.创建存储过程的基本语法模板: if (exists (select * from sys.objects where name = 'pro_name')) dro ...

  7. Sqlserver 存储过程

    转载自:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html Transact-SQL中的存储过程,非常类似于Java语言中的方法, ...

  8. 解剖SQLSERVER 第十五篇 SQLSERVER存储过程的源文本存放在哪里?(译)

    解剖SQLSERVER 第十五篇  SQLSERVER存储过程的源文本存放在哪里?(译) http://improve.dk/where-does-sql-server-store-the-sourc ...

  9. SqlServer存储过程学习笔记(增删改查)

    * IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值. CREATE PROCEDURE [dbo].[PR_NewsAffiche_AddNewsEntity] ( ...

随机推荐

  1. HTML学习----------DAY1 第二节

    使用 Notepad 或 TextEdit 来编写 HTML 可以使用专业的 HTML 编辑器来编辑 HTML: Adobe Dreamweaver Microsoft Expression Web ...

  2. OpenCV学习笔记09--通过cvPtr2D或指针算法绘制图形

    练习:创建一个1000*1000的三通道图像,将其元素所有置0.以(200,50)和(400,200)为顶点绘制一个绿色平面 我们能够用两种方法来实现这一功能,一个是使用cvPtr2D,可是因为使用了 ...

  3. Android禁止ViewPager的左右滑动

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/40744287 有时候在开发中会遇到一些"诡异"的要求,比方在V ...

  4. Deferred Rendering(三)反锯齿和半透明问题

    Deferred 框架下的AA 前面说过Deferred 框架下无法使用硬件AA.这句话不严谨: Deferred Shading在G-Buffer之后,物体几何信息全被抛弃了,导致兴许每一个像素都独 ...

  5. BZOJ1306: [CQOI2009]match循环赛

    [传送门:BZOJ1306] 简要题意: 有n个队伍,每个队伍都要和其他队伍比一场,赢了的队得3分,输了的队不得分,打平两队各得一分,给出每个队伍的得分,求出对战方案数 题解: DFS暴搜!!一眼就觉 ...

  6. Windows 7: Update is not applicable to your computer

    https://www.sevenforums.com/windows-updates-activation/119088-update-not-applicable-your-computer.ht ...

  7. JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递

    本文原创,转载请注明出处:http://blog.csdn.NET/qinjuning 在掌握了JNI函数的使用和相关类型的映射后,以及知晓何利用javah工具生成对应的jni函数以及如何生成动态 链 ...

  8. Python: PS 图层混合算法汇总

    本文用 Python 实现了PS 中的图层混合算法,把很多常见的图层混合算法都汇总到了一起,比起以前写的算法,就是用矩阵运算代替了很耗时的for 循环,运行效率有所提升.具体的代码如下: import ...

  9. [ Linux ] 釋放記憶體指令(cache) - 轉載

    1. [Linux]釋放記憶體指令(cache) http://jeffreyy.pixnet.net/blog/post/84333764-%E3%80%90linux%E3%80%91%E9%87 ...

  10. 16个ASP.NET MVC扩展点【附源码】

    转载于:http://www.cnblogs.com/wupeiqi/p/3570445.html 1.自定义一个HttpModule,并将其中的方法添加到HttpApplication相应的事件中! ...