WEB开发网
开发学院数据库MSSQL Server 使用SQL Server 2005的新函数构造分页存储过程 阅读

使用SQL Server 2005的新函数构造分页存储过程

 2009-10-25 00:00:00 来源:WEB开发网   
核心提示:分页存储过程一直是很多人经常用到的东西,怎么样才能设计一个既实用,使用SQL Server 2005的新函数构造分页存储过程,又强大,还可以解决大数据量的分页存储过程呢?其实在很多时候设计的度还是要把握的,一上午就可以搞两个分页显示的页面,就算是复杂的查询,不至于让自己陷入【非要把它设计成万能的分页存储过程】的怪圈中才

分页存储过程一直是很多人经常用到的东西,怎么样才能设计一个既实用,又强大,还可以解决大数据量的分页存储过程呢?其实在很多时候设计的度还是要把握的,不至于让自己陷入【非要把它设计成万能的分页存储过程】的怪圈中才是最重要的,因为我们还要留出时间还解决其他的很多问题,个人认为适度就可以了,留出一定的空间。也因为万能是不存在的,万物在一定的范畴之内都是合理的,出了范畴可能就没有合理的了。

分页存储过程大致有下列几种

1、 利用Not in 和select top

2、 利用id大于多少和select top

3、 利用sql中的游标

4、临时表

可以参看网上的以下链接

http://www.zxbc.cn/html/20090625/71918.html

http://read.newbooks.com.cn/info/174545.html

在2005中我们的选择就多了,可以利用新语法CTE(公用表表达式),关于CTE的介绍大家可以参看博客园中一位仁兄的系列教程

http://www.cnblogs.com/nokiaguy/archive/2009/01/31/1381562.html

或者干脆上微软的官网

http://msdn.microsoft.com/zh-cn/library/ms190766(SQL.90).aspx

查看具体内容。

除此之外还可以利用在2005中新增的一些函数,分别是:row_number(),rank,dense_rank,ntile,这些新函数是您可以有效的分析数据以及向查询饿结果行提供排序值。您可能发现这些新函数有用的典型方案包括:将连续整数分配给结果行,以便进行表示、分页、计分和绘制直方图。

详细介绍参见下列链接

http://blog.csdn.net/htl258/archive/2009/03/20/4006717.aspx

我这里主要使用的就是row_number()结合新语法CTE,先贴上我的存储过程。设计,开发,测试存储过程和相关的C#代码就花费我两天的时间,不过后面的相似界面就很快了,一上午就可以搞两个分页显示的页面,就算是复杂的查询,一上午也可以搞定。

1 2 3 4  下一页

Tags:使用 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接