SQL Server 2005 中实现数据分页

       在数据分页实现机制中,一般有两种实现方法:即在表示层或数据层上执行分页。在数据层上分页就是每次数据库只返回本页需要的数据,点击“下一页”时再去数据库中取出“下一页”的数据来显示。这样做的好处主要就是提供更好的数据访问性能,降低了服务器的消耗。在表示层实现分页则数据库返回所有的数据并使用比较重量级的控件如GridView来实现,这样肯定对性能有着更大的消耗。因而,我选择在数据层中实现分页。在Sql Server2000 和 2005中的分页实现机制不太相同,由于2005提供了更为便利的T-SQL语言,所以实现起来更为便捷。

    在2005中提供了一个ROW_NUMBER函数,它针对SELECT返回的每一行从1开始,并赋予其连续的编号。但也要找出一列配合它进行排序(一般是主键),这样就保证了每一次都能取得同样顺序的数据集合。如:

SELECT  ROW_NUMBER()  OVER  (ORDER BY id) AS Row, Name FROM Product

    这样就将返回的数据进行了唯一的编号,保证了每次取出的数据顺序是一致的,可以通过下面的语句来返回某页的数据:

SELECT Row, Name FROM (SELECT ROW_NUMBER()  OVER  (ORDER BY id) AS Row, Name FROM Product) AS Product_Order WHERE Row >=6 AND Row <= 10

    可以使用表变量或临时表来存储数据集,如声明一个表变量:DECLARE @Product TABLE,再将数据用INSERT INTO添加到其中,然后就像使用正常表一样使用这个变量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值