科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何实现SQL Server 2005快速Web分页(1)

如何实现SQL Server 2005快速Web分页(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

分页,就是按照某种规则显示分组数据集,但是在SQL Server 中,分页并不是十分容易就能够实现。

作者:Tim Chapman 来源:builder.com.cn 2007年9月4日

关键字: 分页 SQL Server 2005 数据库 SQL Server SQL Server 各版本

  • 评论
  • 分享微博
  • 分享邮件
 

分页,就是按照某种规则显示分组数据集,但是在SQL Server 中,分页并不是十分容易就能够实现。在过去,开发人员通常需要自己编写程序,使用临时表格来实现分页功能,或者将所有的数据结果集返回到客户端,在客户端进行分页操作。从开发人员或者DBA的角度来看,两种方法都不能令人满意。

随着SQL Server的发布,其中的一些排序函数使得开发人员编写数据分页程序变得更加简单和高效。这些新的排序函数提供了统计数据集的数目,对数据集归类,按照某种标准对数据集排序等功能。在这篇文章中,我将着重介绍新增加的ROW-NUMBER排序函数,它会根据你指定的分类标准将结果数据集进行分类,同时给数据集分配连续的页面。

一个分页的实例

我总是喜欢通过例子来介绍如何使用新技术,所以让我们来看看如何设计一个存储程序,使用ROW_NUMBER这一新函数来实现数据的自动分页。

首先,需要定义一些数据结构。我们定义一个SalesHistory表格,它包含的数据是我们在网上售出产品的销售记录。包括一些常见的销售信息,例如,所售产品、售出日期、产品售出价格等。下面的脚本就是创建这样的一个表格:

IF OBJECT_ID('SalesHistory','U') > 0
      DROP TABLE SalesHistory 

CREATE TABLE SalesHistory
(      
      SaleID INT IDENTITY(1,1),      
      Product VARCHAR(30),       
      SaleDate SMALLDATETIME,       
      SalePrice MONEY

)

运行列表A中的脚本则在上面创建的SalesHistory表中添加一些例子数据。

DECLARE @i SMALLINT
SET @i = 1

WHILE (@i <=100)
BEGIN      
      INSERT INTO SalesHistory      
      (Product, SaleDate, SalePrice)      
      VALUES      
('Computer', DATEADD(mm, @i, '3/11/1919'),
 DATEPART(ms, GETDATE()) + (@i + 57) )

      INSERT INTO SalesHistory      
      (Product, SaleDate, SalePrice)      
      VALUES      
('BigScreen', DATEADD(mm, @i, '3/11/1927'),
 DATEPART(ms, GETDATE()) + (@i + 13) )
      
      INSERT INTO SalesHistory      
      (Product, SaleDate, SalePrice)      
      VALUES      
('PoolTable', DATEADD(mm, @i, '3/11/1908'), 
DATEPART(ms, GETDATE()) + (@i + 29) )
      
      SET @i = @i + 1
END

列表A
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章