通过视图修改数据

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

可以通过使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中修改底层基表的数据。

开始之前

限制和局限

权限

需要对目标表的 UPDATE、INSERT 或 DELETE 权限(取决于执行的操作)。

使用 SQL Server Management Studio

通过视图修改表数据

  1. “对象资源管理器”中,展开包含视图的数据库,然后展开 “视图”

  2. 右键单击该视图,然后选择“编辑前 200 行”

  3. 可能需要在 SQL 窗格中修改 SELECT 语句以返回要修改的行。

  4. “结果” 窗格中,找到要更改或删除的行。 若要删除行,请右键单击该行,然后选择“删除”。 若要更改一个或多个列中的数据,请修改列中的数据。

    重要

    如果视图引用多个基表,则不能删除行。 只能更新属于单个基表的列。

  5. 若要插入行,请向下滚动到行的结尾并插入新值。

    重要

    如果视图引用多个基表,则不能插入行。

“使用 Transact-SQL”

通过视图更新表数据

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。

  2. 在标准菜单栏上,单击 “新建查询”

  3. 将以下示例复制并粘贴到查询窗口中,然后单击“执行” 。 此示例通过引用视图 StartDate 中的列为特定雇员更改 EndDateHumanResources.vEmployeeDepartmentHistory列中的值。 此视图从两个表返回值。 此语句会成功,因为修改的列都来自一个基表。

    USE AdventureWorks2022;   
    GO  
    UPDATE HumanResources.vEmployeeDepartmentHistory  
    SET StartDate = '20110203', EndDate = GETDATE()   
    WHERE LastName = N'Smith' AND FirstName = 'Samantha';   
    GO  
    

有关更多信息,请参阅 UPDATE (Transact-SQL)

通过视图插入表数据

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。

  2. 在标准菜单栏上,单击 “新建查询”

  3. 将以下示例复制并粘贴到查询窗口中,然后单击“执行” 。 此示例通过指定视图 HumanResouces.Department 中的相关列,将一个新行插入到基表 HumanResources.vEmployeeDepartmentHistory。 该语句会成功,因为只指定了一个基表中的列,基表中的其他列具有默认值。

    USE AdventureWorks2022;  
    GO  
    INSERT INTO HumanResources.vEmployeeDepartmentHistory (Department, GroupName)   
    VALUES ('MyDepartment', 'MyGroup');   
    GO  
    

有关详细信息,请参阅 INSERT (Transact-SQL)