SQL Server基础知识之:设计和实现视图

发表于:2009-10-30 10:27

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

#
server
#
Server
#
SQL

  设计和实现视图可谓是数据库物理设计中的一个非常重要的步骤。从一般意义上说,设计和实现视图应该遵循下面的一些建议和原则。

  以下内容摘在文档,我对某些重点进行了补充说明(红色部分)

  只能在当前数据库中创建视图。 但是,如果使用分布式查询定义视图,则新视图所引用的表和视图可以存在于其他数据库甚至其他服务器中。

  分布式视图是可行的,但随着SQL Server本身能力的提高,例如SQL Server 2005开始支持表分区等技术之后,分布式视图应该尽量少用。

  所谓分布式视图的一个最大的问题就是将表物理上分开在多个数据库甚至服务器中,这增加了维护和查询的难度

  视图名称必须遵循标识符的规则,且对每个架构都必须唯一。 此外,该名称不得与该架构包含的任何表的名称相同。

  一个可以借鉴的做法是:在视图名称之前添加一个前缀 vw

  您可以对其他视图创建视图。Microsoft SQL Server 允许嵌套视图。但嵌套不得超过 32 层。 根据视图的复杂性及可用内存,视图嵌套的实际限制可能低于该值。

  一般不建议超过2层

  不能将规则或 DEFAULT 定义与视图相关联。

  不能将 AFTER 触发器与视图相关联,只有 INSTEAD OF 触发器可以与之相关联。

  除非万不得已,一般不建议使用触发器

  定义视图的查询不能包含 COMPUTE 子句、COMPUTE BY 子句或 INTO 关键字。

  很多朋友不知道:COMPUTER和COMPUTER BY语句仅仅用于一些特殊场合,用于生成总计行。大致有如下的效果

  该特性不能用于视图,但可以直接用于查询

  定义视图的查询不能包含 ORDER BY 子句,除非在 SELECT 语句的选择列表中还有一个 TOP 子句。

  这个很有意思,如果要访问所有的呢,还必须是写TOP 100 PERCENT

  定义视图的查询不能包含指定查询提示的 OPTION 子句。

  定义视图的查询不能包含 TABLESAMPLE 子句。

  关于TABLESAMPLE语句,大家可能也比较陌生,这是一个用于对数据进行抽样的。它和TOP语句不同,TOP语句是有固定大小的,而TABLESAMPLE返回的数据,可能多,可能少,甚至可能没有。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号