通过视图修改数据
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)
可以通过使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中修改底层基表的数据。
开始之前
限制和局限
- 请参阅 CREATE VIEW (Transact-SQL) 中的“可更新的视图”一节。
权限
需要对目标表的 UPDATE、INSERT 或 DELETE 权限(取决于执行的操作)。
使用 SQL Server Management Studio
通过视图修改表数据
在 “对象资源管理器”中,展开包含视图的数据库,然后展开 “视图”。
右键单击该视图,然后选择“编辑前 200 行”。
可能需要在 SQL 窗格中修改 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 (Transact-SQL)。
通过视图插入表数据
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准菜单栏上,单击 “新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后单击“执行” 。 此示例通过指定视图
HumanResources.Department
中的相关列,将一个新行插入到基表HumanResources.vEmployeeDepartmentHistory
。 该语句会成功,因为只指定了一个基表中的列,基表中的其他列具有默认值。USE AdventureWorks2022; GO INSERT INTO HumanResources.vEmployeeDepartmentHistory (Department, GroupName) VALUES ('MyDepartment', 'MyGroup'); GO
有关详细信息,请参阅 INSERT (Transact-SQL)。