跳至内容

视图

视图是从一个或多个表(或视图)导出的虚表。它看起来像真实的表,有命名的列和行,但本身不存储任何数据,只是一种更简单的访问其他表数据的方式。视图只能建立在当前正在使用的数据库中。

视图的优点

  • 聚焦数据:把需要的、常规的、适当的数据组织关系存储在视图中,创建可控的环境。
  • 本身不存储数据:节省空间。
  • 隐藏数据库的复杂性:简化用户许可管理;数据库拥有者只允许用户通过视图查询数据,保护底层基表的设计结构。
  • 提高性能:存储复杂查询、分割数据。
  • 输出数据给其他应用程序

创建与使用

创建视图:

USE 数据库名
CREATE VIEW 视图名 AS
    SELECT 语句
GO

查询视图数据:

SELECT 字段 FROM 视图名

修改视图定义:

USE 数据库名
GO
ALTER VIEW 视图名 AS
    新的 SELECT 语句
GO

更新视图数据(通过视图修改底层表):

USE 数据库名
GO
UPDATE 视图名
SET ...
GO

删除视图:

DROP VIEW 视图名

视图选项

加密视图(加密包含 CREATE VIEW 语句文本在内的系统表列,只能加密不可解密,加密前要备份):

ALTER VIEW 视图名 WITH ENCRYPTION AS ...
  • WITH CHECK OPTION:强制视图上执行的所有修改数据语句都必须符合视图定义中的条件限制。
  • WITH ENCRYPTION:表示 SQL Server 加密视图定义文本。

注意事项

  • 只能在当前数据库中创建视图。
  • 如果视图引用的基表或视图被删除,则该视图不能再使用,直到重新创建对应的基表或视图。
  • 如果视图中某一列是函数、数学表达式、常量,或来自多个表的列名相同,则必须为该列定义名称。
  • 视图名称必须遵循标识符规则,且对每个用户唯一。
  • 通过视图查询数据时,SQL Server 会检查涉及的所有数据库对象是否存在,且数据修改语句不能违反数据完整性规则。
最后更新于