per 请进

wlzd3636 2009-03-11 11:56:06
---sp1补丁

select * into view_T1 from (select id=1 union all select id=3 union all select id=2)x



create view view1
as
select top 100 percent id from view_T1
order by id


select id from view1

id
-----------
1
3
2

(3 行受影响)

---并没有受影响

--sp2补丁


select * into view_T1 from (select id=1 union all select id=3 union all select id=2)x



create view view1
as
select top 100 percent id from view_T1
order by id


select id from view1

id
-----------
1
3
2

(3 行受影响)

也没有受影响

---出处
1sql ansi 视图的定义

2tsql inside 2005 程序设计
page:
184 视图
创建排序视图本身的企图就是错误的,因为视图表示一个表
而表是不会对行排序的。
众所周知 在sql2000中追求 排序视图的开发人员会利用貌似系统漏洞这一技巧
利用找个漏洞可以创建一个非常可笑的视图 比如 top 100 percent
视图中的 order by 子句意味着什么?他的意义不是很明确 因为 top选项 不是ansi标准
但你如果从集合的角度考虑一下 就会认为 order by 子句没有什么意义了。
因为你已经筛选了表达式(filter expression)的行 查询视图 sqlserver 不保证输出的顺序
。。。。。。。。


难道微软准备出可以排序的视图的补丁?
没打sp3
ps 关于重建索引 非聚是因为指针指向不同 先新建非聚 后删除原来的非聚
而不是简单的把 区号 页号 行号 换成 聚的键值.
那说以前讨论不对 是那个非聚优于聚集。不是索引结构。
所以在查询一个有聚集和非据表时候 会优先查询 非据 然后指向键值
比直接差聚集 少读取2层数据叶。

哪里不对请指教。 顺便指出出处
...全文
73 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlzd3636 2009-03-11
  • 打赏
  • 举报
回复
昨天回复了per的帖子 在争论呢。。
dawugui 2009-03-11
  • 打赏
  • 举报
回复
?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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