通过视图修改数据

您可以使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中修改基础基表的数据。

本主题内容

  • 开始之前:

    限制和局限

    安全性

  • 通过视图修改表数据,使用:

    SQL Server Management Studio

    Transact-SQL

开始之前

限制和局限

安全性

权限

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

用于“返回首页”链接的箭头图标[Top]

使用 SQL Server Management Studio

通过视图修改表数据

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

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

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

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

    重要说明重要提示

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

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

    重要说明重要提示

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

用于“返回首页”链接的箭头图标[Top]

使用 Transact-SQL

通过视图更新表数据

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

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

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

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

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

通过视图插入表数据

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

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

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

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

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

用于“返回首页”链接的箭头图标[Top]