限制服务器端返回的行数(强制限制)

tpl*_*ner 6 sql-server client-server sql-server-2008

所以我们有一个软件,它的SQL语句编写得很糟糕,导致表中的每一行都被返回.表中有几百万行,因此这会导致严重的内存问题和客户端计算机崩溃.供应商正在为该问题创建补丁,但仍需要几周时间.与此同时,我们试图找出一种限制服务器端返回结果数量的方法,就像临时修复一样.

我没有真正的希望有一个解决方案,我环顾四周,并没有真正看到任何方法这样做,但我希望有人可能有一个想法.

先感谢您.

编辑

我忘记了一条重要的信息,我们无法访问源代码,因此我们无法在形成SQL语句的客户端更改此信息.没有真正的服务器端组件,客户端只是直接访问数据库.任何解决方案基本上都需要一个过程,触发器或某种SQL-Server 2008设置/命令.

Lie*_*ers 2

一种可能的解决方案是

  • 重命名有问题的表
  • 使用原始表名创建可更新视图
  • 做一个SELECT TOP x * FROM OffendingTable作为你的视图定义

因此,客户端在选择数据时不会意识到更改。


使用查询调控器

如果您不介意不为有问题的查询返回任何数据,则查询调控器允许您这样做。