- SQL Server 2016 从入门到实战(视频教学版)
- 孙亚男
- 1034字
- 2025-04-18 16:06:41
5.3 通过视图操作数据
由于视图是一张虚表,对视图的更新最终实际上是转换成对视图的基本表的更新,因此可以通过更新视图的方式实现对表中数据的更新。视图的更新操作包括插入、修改和删除数据,可以使用SQL Server Management Studio或T-SQL在SQL Server 2016中修改基础表的数据。
5.3.1 在视图中插入数据记录
在通过视图插入数据时,必须保证未显示的列有值,该值可以是默认值或NULL值。假设在table1上创建了一个视图,table1有c1、c2和c3三列,视图创建在c1和c2上。那么,通过视图对table1插入数据时,必须保证c3有值(可以是默认值或NULL值),否则不能向视图中插入行。
具体来说,在视图中插入数据记录,其实质是向构成视图的基本表中插入数据,具体操作步骤如下:
步骤01 在【对象资源管理器】中展开包含视图的数据库,然后展开【视图】。
步骤02 右击该视图,然后选择【编辑前200行】菜单项。
步骤03 可能需要在SQL窗格中修改SELECT语句以返回要修改的行。
步骤04 在【结果】窗格中,向下滚动到行的结尾并插入新值。若视图引用多个基表,则不能插入行,如图5.11所示。

图5.11 插入数据记录
5.3.2 在视图中修改数据记录
与在视图中插入数据的操作类似,在视图中修改数据记录的实质也是针对基本表的操作,其具体操作步骤如下:
步骤01 在【对象资源管理器】中展开包含视图的数据库,然后展开【视图】。
步骤02 右击该视图,然后选择【编辑前200行】。
步骤03 可能需要在SQL窗格中修改SELECT语句以返回要修改的行。
步骤04 在【结果】窗格中找到要更改的行,若要更改一个或多个列中的数据,修改列中的数据即可,如图5.12所示。

图5.12 修改数据记录
5.3.3 在视图中删除数据记录
通过视图也可以从表中删除行,该视图不必显示底层表中的所有列。此处需要注意的是,该视图的数据必须来源于一个单表,即视图的SELECT语句必须只引用单个表,也就是删除目标基本表只能是单表,其具体操作步骤如下:
步骤01 在【对象资源管理器】中展开包含视图的数据库,然后展开【视图】。
步骤02 右击该视图,然后选择【编辑前200行】。
步骤03 可能需要在SQL窗格中修改SELECT语句以返回要修改的行。
步骤04 在【结果】窗格中找到要删除的行,右击该行,然后选择【删除】命令。若视图引用多个基表,则不能删除行,只能更新属于单个基表的列,如图5.13所示。

图5.13 删除数据记录
视图的删除与普通关系表的删除是有一些区别的,删除基本表是不存在关联的。此外,删除视图与删除基本表最大的不同点是删除视图仅仅是删除了视图的组织结构,用户以后不能再用这个视图来进行操作,但组成视图内容的数据并没有被删除,仍然保存在原来的关系表中。同时,其处理方式与关系表的相应处理方式类似。