`
sbfqmq
  • 浏览: 1766 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

原创:也谈SqlServer分页

阅读更多

今天也来谈谈SqlServer的分页:

  1. 使用游标分页。
  2. 使用top分页。
  3. 使用ROW_NMUBER()分页(SQLServer 2005)。

对应表:

sql 代码
  1. if exists (select name from sysobjects where name='produce' and type='u')   
  2. drop table produce   
  3. go   
  4.   
  5. create table produce(   
  6.    p_id varchar(64) primary key,   
  7.   p_name varchar(50),   
  8.   p_price float,   
  9.   p_path varchar(100)   
  10. )   
  11. go   
以下是使用top分页的存储过程:
sql 代码
  1. if exists(select name from sysobjects where name='produce_proc' and type='p')   
  2. drop procedure produce_proc   
  3. go   
  4. create procedure produce_proc   
  5. @pageSize int,      --每页的记录数   
  6. @index int          --从第几条记录开始   
  7. as  
  8.   begin  
  9.   set nocount on       
  10. declare @sql nvarchar(3000)   
  11. if @index>@pageSize   
  12.      begin  
  13.   set @index = @index - @pageSize   
  14.        set @sql='select top '+cast (@pageSize as varchar(8))+' * from produce where p_id>(   
  15.           select max(p_id) from (select top '+cast (@index as varchar(8))+' p_id from produce order by p_id)    
  16.         as t)   
  17.         order by p_id'   
  18.   end  
  19. else  
  20.   begin  
  21.       set @sql = 'select top '+cast (@pageSize as varchar(8))+'* from produce order by p_id'   
  22.   end  
  23. execute sp_executesql @sql   --调用系统存储过程忧化动态执行效率    
  24.  set nocount off  
  25. end  

 

ROW_NUMBER()分页:

sql 代码
  1. SELECT * FROM (SELECT p_id,p_name,p_path,p_price,ROW_NUMBER() OVER (ORDER BY p_id) AS 'RowNumber' FROM produce) a  WHERE a.RowNumber BETWEEN 开始记录 AND 结束记录数  

改日再贴三种方式的性能测试文章

分享到:
评论
4 楼 laiseeme 2008-01-29  
请问这个怎么能用到hibernate呢?
3 楼 suncjh 2008-01-17  
受教了,对heibernate不是很熟,正在学习中.
2 楼 sbfqmq 2008-01-05  
很是纳闷,后面写的挺长,但是没有显示,
1 楼 gumpgz 2007-12-25  
1、没有说明数据库版本,ROW_NMUBER是sql server2005的吧
2、如果是符合主键,用max、not in怎么处理
3、如果是符合主键、或者排序字段不是主键,用max、not in怎么处理

最近在写个物理级的通用分页程序,db2、oracle、mysql的都很好些,就是sql server的有些啥,死板

相关推荐

    sql Server 通用分页存储过程

    sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程

    sqlserver分页查询语句

    sqlserver分页查询语句;sqlserver分页查询语句;sqlserver分页查询语句;

    jsp+sqlserver分页

    **标题:“jsp+sqlserver分页”** 在Web开发中,分页是一种常见的用户界面设计技术,用于在大量数据中提供可浏览性。本项目基于`SQL Server 2005`数据库,结合`Struts`框架和`JavaBean`组件,实现了在JSP页面上进行...

    sql server分页技术(SQL Server 与Access数据库相关分页技术)

    在SQL Server中,分页技术是一项关键功能,尤其在处理大量数据时,它能有效地提高查询性能并优化用户体验。在Web应用中,分页通常用于显示数据库中的数据列表,避免一次性加载所有数据导致的性能问题。以下是几种...

    sql server 分页

    sql server分页代码 --分页【top】:不支持复合主键 SELECT TOP 10 * from Lend where id not in (SELECT TOP ((2-1)*10) id from lend ORDER BY id) ORDER BY id ; SELECT TOP 10 * from Lend where id not ...

    SQLServer分页.rar

    在SQL Server数据库管理中,分页查询是一种常用的技术,它允许用户按页面浏览大量数据,而不是一次性加载所有结果。这在处理大型数据集时尤为重要,因为它可以提高性能,减少服务器负担,并提供更好的用户体验。本...

    sql server 分页大全

    在SQL Server数据库管理中,分页查询是一种常用的技术,它允许用户按页面浏览大量数据,而不是一次性加载所有结果。在大型数据库中,这可以显著提高性能,减少内存消耗,并提供更好的用户体验。本篇文章将深入探讨...

    jsp+sql server分页技术

    **JSP + SQL Server 分页技术详解** 在Web开发中,数据展示往往涉及到大量的记录,如果一次性加载所有数据,不仅会消耗大量系统资源,还可能导致页面加载速度变慢,用户体验下降。因此,分页技术应运而生。本文将...

    SQL server 分页查询

    SQL Server作为微软推出的一款关系型数据库管理系统,在处理复杂查询、数据分页等方面提供了丰富的功能和优化策略。本文将深入探讨SQL Server中的分页查询技术,帮助读者掌握如何高效地进行数据分页,以提升应用程序...

    java语言的分页查询功能(mysql和sql server)

    本教程将详细讲解如何在Java中实现不分框架的分页查询,同时涵盖对MySQL和SQL Server数据库的支持。 一、基础知识 1. 分页概念:分页是将大量数据按一定数量分成若干部分,每次只加载一部分到内存中显示,用户可以...

    java 连接sqlserver数据库查询,并分页显示

    在Java编程中,连接SQL Server数据库并执行查询是常见的任务,尤其当涉及到大量数据时,分页显示就显得尤为重要。本篇文章将详细讲解如何使用Java连接SQL Server数据库,执行查询语句以及实现分页显示。 首先,我们...

    sqlserver分页器

    简易的sqlserver分页功能,只需要将页码传入即可,默认id倒序排列,一页十条,也可以通过传入不同参数,对不同字段,进行正序或倒序排列。 使用方法:1、将该类导入实体类包中 2、在需要分页的地方创建该类对象,并...

    EXT JSON Sqlserver 分页 全部正常运行

    【EXT JSON Sqlserver 分页 全部正常运行】 在IT领域,这个标题涉及到的是一个使用EXT JS(一种基于JavaScript的富客户端框架)和JSON(JavaScript Object Notation)数据格式,结合SQL Server数据库实现分页功能的...

    ASP.NET基于SQLServer的分页

    开发者需要理解分页原理,掌握如何在ASP.NET中使用分页控件,以及如何优化SQL Server的分页查询,以提供流畅的用户体验。在实际项目中,根据具体需求灵活运用这些技术,可以大大提升应用的性能和用户满意度。

    Sql Server 通用分页存储过程(适用与 BootStrap Table)

    通用的Sql Server分页程序,并且符合BootStrap Table 的调用标准.

    最简单的SQL Server数据库存储过程分页

    ### 最简单的SQL Server数据库存储过程分页 #### 知识点概述 在处理大量数据时,分页查询是一项常见的需求。传统的T-SQL分页方法可能会导致性能问题,尤其是在面对百万级别的数据集时。本文介绍一种简单且高效的...

    标准SQLServer分页存储过程

    ### 标准SQL Server分页存储过程:深入解析与应用 在处理大量数据时,分页技术是提高数据展示效率和用户体验的关键。SQL Server提供的存储过程是实现分页功能的有效方式之一。本文将深入探讨微软C# .NET中的宠物...

    jsp+sqlserver分页代码

    ### JSP + SQL Server 分页代码详解 #### 一、背景介绍 在Web开发中,分页是一项常用的技术,尤其当数据量较大时,通过分页可以提高用户体验并减轻服务器负担。本文将对一个JSP结合SQL Server实现的简单分页代码...

    SqlServer数据库分页

    在SQL Server数据库中,分页是一种常见的数据检索技术,它允许我们从大量数据中按需获取一部分结果,而不是一次性加载所有记录。这在处理大型数据集时尤其有用,可以提高性能,减少网络传输,以及提供更好的用户体验...

    mysql,oracle,sqlserver分页

    ### 数据库分页技术详解:MySQL、Oracle与SQL Server #### Oracle 分页 在Oracle数据库中实现分页功能,主要依赖于`ROWNUM`伪列。`ROWNUM`用于为查询结果集中的每一行分配一个唯一的编号,从1开始递增。通过控制`...

Global site tag (gtag.js) - Google Analytics