程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SQL Server 2008 R2中的有效分页大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决SQL Server 2008 R2中的有效分页?

开发过程中遇到SQL Server 2008 R2中的有效分页的问题如何解决?下面主要结合日常开发的经验,给出你关于SQL Server 2008 R2中的有效分页的解决方法建议,希望对你解决SQL Server 2008 R2中的有效分页有所启发或帮助;

根据[obscenely long SELEct query]结构的不同,您可能可以使用临时表或表变量: -用匹配行的ID填充临时表 -计算临时表的行数以计算页数 -检索调用方构建的结果带有临时表和相关数据库表的查询

解决方法

我想编写一个执行以下操作的存储过程:返回与查询匹配的记录数(以确定要显示给用户的页面数)从当前页面的查询返回具有特定记录子集的另一个记录集。

从我发现的另一个问题(对不起,我丢失了链接),我发现我们这样做是分页的:

SELECT u.* FROM 
(
    select t.*,ROW_numbER() OVER (ORDER BY t.id) as rownum FROM
    (
        [obscenely long SELEct query]
    )
    as t
)
AS u WHERE u.rowNum >= 1 AND u.rowNum <= 20

通过执行以下操作,我可以获得[冗长的选择查询]返回的记录数:

SELECT COUNT(*) AS numRecords from ([obscenely long SELEct query]) AS records

我想尽可能有效地获得这两个记录集。

我能弄清楚该怎么做的唯一方法是将以上两个语句都放入一个存储过程中。由于某些原因,这使我感到效率低下:

  • 我必须写出两次[过长的选择查询],这使得解决方案难以维护/更改(如果可能的话,我 真的 想避免这种情况)。
  • 我必须运行[淫秽的长选择查询],获取所有可能的记录(可能是几千条),然后再将其缩减为合理的分页大小,而仅在获得计数时再次运行它。

我尝试过的其他解决方案:

  • 将[冗长的选择查询]放入其自己的存储过程中(这会导致语法错误)。

有什么可以做的吗?我应该只是吸收它并坚持使用当前的解决方案,还是有一种更优雅的方法来实现这一目标?

大佬总结

以上是大佬教程为你收集整理的SQL Server 2008 R2中的有效分页全部内容,希望文章能够帮你解决SQL Server 2008 R2中的有效分页所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。