适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
可以通过使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中修改底层基表的数据。
局限性
请参阅 CREATE VIEW 中的“可更新视图”部分。
权限
需要UPDATE、INSERT或DELETE权限,具体取决于要在目标表上执行的动作。
使用 SQL Server Management Studio
通过视图修改表数据
在 “对象资源管理器”中,展开包含视图的数据库,然后展开 “视图”。
右键单击该视图,然后选择“编辑前 200 行”。
可能需要修改
SELECT窗格中的语句以返回要修改的行。在 “结果” 窗格中,找到要更改或删除的行。 若要删除行,请右键单击该行,然后选择“删除”。 若要更改一个或多个列中的数据,请修改列中的数据。
如果视图引用了多个基表,则无法删除行。 只能更新属于单个基表的列。
若要插入行,请向下滚动到行的结尾并插入新值。
如果视图引用多个基表,则不能插入行。
使用 Transact-SQL
通过视图更新表数据
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准栏上,选择“新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后选择 执行。 此示例通过引用视图
StartDate中的列为特定雇员更改EndDate和HumanResources.vEmployeeDepartmentHistory列中的值。 此视图从两个表返回值。 此语句会成功,因为修改的列都来自一个基表。USE AdventureWorks2022; GO UPDATE HumanResources.vEmployeeDepartmentHistory SET StartDate = '20110203', EndDate = GETDATE() WHERE LastName = N'Smith' AND FirstName = 'Samantha'; GO
有关详细信息,请参阅 UPDATE。
通过视图插入表数据
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准栏上,选择“新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后选择 执行。 此示例通过指定视图
HumanResources.Department中的相关列,将一个新行插入到基表HumanResources.vEmployeeDepartmentHistory。 该语句会成功,因为只指定了一个基表中的列,基表中的其他列具有默认值。USE AdventureWorks2022; GO INSERT INTO HumanResources.vEmployeeDepartmentHistory (Department, GroupName) VALUES ('MyDepartment', 'MyGroup'); GO
有关详细信息,请参阅 INSERT。