视图

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库

视图是一个虚拟表,其内容由查询定义。 同表一样,视图包含一系列带有名称的列和行数据。 视图在数据库中并不是以数据值存储集形式存在,除非是索引视图。 行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

对其中所引用的基础表来说,视图的作用类似于筛选。 定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。 分布式查询也可用于定义使用多个异类源数据的视图。 例如,如果有多台不同的服务器分别存储您的单位在不同地区的数据,而您需要将这些服务器上结构相似的数据组合起来,这种方式就很有用。

视图通常用来集中、简化和自定义每个用户对数据库的不同认识。 视图可用作安全机制,方法是允许用户通过视图访问数据,而不授予用户直接访问视图基础表的权限。 视图可用于提供向后兼容接口来模拟曾经存在但其架构已更改的表。 还可以在向 SQL Server 复制数据以及从其中复制数据时使用视图,以便提高性能并对数据进行分区。

视图类型

除了基本用户定义视图的标准角色以外,SQL Server 还提供了下列类型的视图,这些视图在数据库中起着特殊的作用。

索引视图

索引视图是被具体化了的视图。 这意味着已经对视图定义进行了计算并且生成的数据像表一样存储。 可以为视图创建索引,即对视图创建一个唯一的聚集索引。 索引视图可以显著提高某些类型查询的性能。 索引视图尤其适于聚合许多行的查询。 但它们不太适于经常更新的基本数据集。

分区视图

分区视图在一台或多台服务器间水平连接一组成员表中的分区数据。 这样,数据看上去如同来自于一个表。 联接同一个 SQL Server 实例中的成员表的视图是一个本地分区视图。

系统视图

系统视图公开目录元数据。 可以使用系统视图返回与 SQL Server 实例或在该实例中定义的对象有关的信息。 例如,你可以查询 sys.databases 目录视图以返回与实例中提供的用户定义数据库有关的信息。 有关详细信息,请参阅系统视图 (Transact-SQL)

常见视图任务

下表提供指向与创建或修改视图相关联的常见任务的链接。

视图任务 主题
介绍如何创建视图。 创建视图
介绍如何创建索引视图。 创建索引视图
介绍如何修改视图定义。 修改视图
介绍如何通过视图修改数据。 通过视图修改数据
介绍如何删除视图。 删除视图
介绍如何返回与视图有关的信息,例如视图定义。 获取有关视图的信息
介绍如何重命名视图。 重命名视图