Cor*_*use 1 database sql-server sql-server-7
据我所知,"不能排序大小为9754的行,这大于允许的最大值8094".来自SQL Server的是由一行中有超过9k个字符的行引起的,这个行大于SQL Server 7中的页面大小限制.但是我没有通过下面的数据调用一个命令,所以为什么错误说它不能排序?
SELECT <a number of columns...>
FROM Category10Master c10
JOIN Category20Master c20 ON c10.Cat10ID = c20.ParentCatID
JOIN Category25Master c25 ON c20.Cat20ID = c25.ParentCatID
JOIN Category30Master c30 ON c25.Cat25ID = c30 .ParentCatID
JOIN Item i ON c30.Cat30ID = i.ParentCatID
Run Code Online (Sandbox Code Playgroud)
编辑:是的,我知道我可以调用更少的列来解决这个问题 - 实际的查询显式调用所需的列,但仍超过行大小限制.这实际上是在一个被称为站点范围的视图中,因此更改视图以缩回更少的列不是一个有吸引力的选项 - 需要修改数十个页面以从视图以外的其他位置获取数据.我不幸的是已经把一个丑陋的设计搞得一团糟,我希望有人能提供比吸引更少数据更有吸引力的解决方案.
检查排序的估计查询计划,例如,执行其中一个可能选择合并连接的连接,并且为了实现这一点,它需要在合并之前首先对数据进行排序 - 此时您已经排序.