为什么sql server2005/2008的视图显示时没有按照ORDER BY限定的关键字排序

dolphin12345 2009-06-15 11:43:00
如题
...全文
366 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nzperfect 2010-04-13
  • 打赏
  • 举报
回复
汗,原来要应用这个fix是有条件的:
This hotfix introduces trace flag 168. After you apply this hotfix, you must enable trace flag 168.
Additionally, you must change the compatibility level of the database that contains the view to 80.
wondrous 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 perfectaction 的回复:]
FIX: 当您查询通过 SQL Server 2008 中使用 ORDER BY 子句的视图时, 结果仍中返回随机顺序
SQL Server 2005 或 SQL Server 2008 中的数据库中有一个视图。 视图的定义中, SELECT 语句满足以下要求:

    * SELECT 语句使用 TOP 的 (100) 百分比表达式。
    * SELECT 语句使用 ORDER BY 子句。

您查询通过视图,以随机顺序返回结果。

但是,此行为与 Microsoft SQL Server 2000 中不同。 在 SQL Server 2000,ORDER BY 子句中指定的顺序返回结果。


http://support.microsoft.com/?scid=kb%3Bzh-cn%3B926292&x=13&y=11


微软声称在kb中修复了些问题,但经我测试,该kb并不生效.
[/Quote]


最新的hotfix也没有用,刚刚试了。
dolphin12345 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dolphin12345 的回复:]
那我想与2000一样,打开视图就能显示有序的结果,应该怎么办呢?
[/Quote]

这个哪位老大能回答一下呢
dolphin12345 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yesyesyes 的回复:]
引用 8 楼 dolphin12345 的回复:
引用 6 楼 dolphin12345 的回复:
那我想与2000一样,打开视图就能显示有序的结果,应该怎么办呢?


这个哪位老大能回答一下呢



不行的

要么用存储过程

要么

select * from 视图 order by ...
[/Quote]


1.看来我要好好学习一下存储过程了,还没研究过呢
2.select * from 视图 order by ... 这个不好,用这个就不用建视图了
yesyesyes 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dolphin12345 的回复:]
引用 6 楼 dolphin12345 的回复:
那我想与2000一样,打开视图就能显示有序的结果,应该怎么办呢?



这个哪位老大能回答一下呢
[/Quote]

不行的

要么用存储过程

要么

select * from 视图 order by ...
dolphin12345 2009-06-15
  • 打赏
  • 举报
回复
那我想与2000一样,打开视图就能显示有序的结果,应该怎么办呢?
nzperfect 2009-06-15
  • 打赏
  • 举报
回复
这个问题曾经反映给微软技术人员,但未果.
nzperfect 2009-06-15
  • 打赏
  • 举报
回复
FIX: 当您查询通过 SQL Server 2008 中使用 ORDER BY 子句的视图时, 结果仍中返回随机顺序
SQL Server 2005 或 SQL Server 2008 中的数据库中有一个视图。 视图的定义中, SELECT 语句满足以下要求:

* SELECT 语句使用 TOP 的 (100) 百分比表达式。
* SELECT 语句使用 ORDER BY 子句。

您查询通过视图,以随机顺序返回结果。

但是,此行为与 Microsoft SQL Server 2000 中不同。 在 SQL Server 2000,ORDER BY 子句中指定的顺序返回结果。


http://support.microsoft.com/?scid=kb%3Bzh-cn%3B926292&x=13&y=11


微软声称在kb中修复了些问题,但经我测试,该kb并不生效.
yesyesyes 2009-06-15
  • 打赏
  • 举报
回复
联机帮助中的


注意:
在视图、内联函数、派生表或子查询的定义中使用 ORDER BY 时,子句只用于确定 TOP 子句返回的行。ORDER BY 不保证在查询这些构造时得到有序结果,除非在查询本身中也指定了 ORDER BY。
ai_li7758521 2009-06-15
  • 打赏
  • 举报
回复
你可以在视图查询时排序
SELECT * FROM view ORDER BY ..
ai_li7758521 2009-06-15
  • 打赏
  • 举报
回复
定义视图时不能排序
feixianxxx 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yesyesyes 的回复:]
联机帮助中的


注意:
在视图、内联函数、派生表或子查询的定义中使用 ORDER BY 时,子句只用于确定 TOP 子句返回的行。ORDER BY 不保证在查询这些构造时得到有序结果,除非在查询本身中也指定了 ORDER BY。
[/Quote]
UP ~~~
编译出错 应该会提示的吧。。。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧