T-SQL复习09--视图

解析

视图是一个虚拟表,其内容由查询定义,同表一样,视图包含一系列带有名称的列和行数据,行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成

视图的作用

  1. 集中用户需要的数据
  2. 用作安全机制,数据库管理元只允许用户通过视图查询数据,而不授予用户直接访问视图基础表的权限
  3. 提高性能,存储复杂查询

创建视图

示例:

1
2
3
4
5
6
USE SCHOOL
GO
CREATE VIEW V_BEST_SCORE
AS
SELECT * FROM dbo.GRADE WHERE SCORE>90
GO

修改视图

示例:

1
2
3
4
5
6
USE SCHOOL
GO
ALTER VIEW dbo.V_BEST_SCORE
AS
SELECT * FROM dbo.GRADE WHERE SCORE>95
GO

更新视图数据

示例:

1
2
3
4
USE SCHOOL
GO
UPDATE dbo.V_BEST_SCORE SET SCORE=96
GO

注:更新视图数据同时也会更新源表数据

使用系统存储过程查看创建视图脚本

示例:

1
EXEC sys.sp_helptext 'V_BEST_SCORE'

加密视图

使用WITH ENCRYPTION加密视图脚本,WITH CHECK OPTION强制更新视图的数据并且符合创建视图时的筛选条件
示例:

1
2
3
4
5
6
USE SCHOOL
GO
ALTER VIEW dbo.V_BEST_SCORE WITH ENCRYPTION
AS
SELECT * FROM dbo.GRADE WHERE SCORE>90
WITH CHECK OPTION

加密了视图之后,使用sp_helptext存储过程就无法查看视图脚本了

使用WITH CHECK OPTION表示如果更新视图数据,必须保证更新完数据还在视图里,即参照上面的示例,如果将SCORE更新成91,则可以更新成功,如果将SCORE更新成89,则无法更新成功

删除视图

示例:

1
DROP VIEW dbo.V_BEST_SCORE