---
title: "Modify Data Through a View | Microsoft Docs"
ms.custom: ""
ms.date: "10/05/2016"
ms.prod: sql
ms.prod_service: "table-view-index, sql-database, sql-data-warehouse, pdw"
ms.reviewer: ""
ms.technology: table-view-index
ms.topic: conceptual
helpviewer_keywords:
- "data modifications [SQL Server], views"
- "views [SQL Server], modifying data through"
- "modifying data [SQL Server], views"
ms.assetid: 410e2812-4ebe-48b2-b95f-c7784f1c4336
author: stevestein
ms.author: sstein
monikerRange: ">=aps-pdw-2016||=azuresqldb-current||=azure-sqldw-latest||>=sql-server-2016||=sqlallproducts-allversions||>=sql-server-linux-2017||=azuresqldb-mi-current"
---
# Modify Data Through a View
[!INCLUDE[tsql-appliesto-ss2008-asdb-asdw-pdw-md](../../includes/tsql-appliesto-ss2008-all-md.md)]
You can modify the data of an underlying base table in SQL Server by using [!INCLUDE[ssManStudioFull](../../includes/ssmanstudiofull-md.md)] or [!INCLUDE[tsql](../../includes/tsql-md.md)].
## Before You Begin
### Limitations and Restrictions
- See the section 'Updatable Views' in [CREATE VIEW (Transact-SQL)](../../t-sql/statements/create-view-transact-sql.md).
### Permissions
Requires UPDATE, INSERT, or DELETE permissions on the target table, depending on the action being performed.
## Using SQL Server Management Studio
#### To modify table data through a view
1. In **Object Explorer**, expand the database that contains the view and then expand **Views**.
2. Right-click the view and select **Edit Top 200 Rows**.
3. You may need to modify the SELECT statement in the **SQL** pane to return the rows to be modified.
4. In the **Results** pane, locate the row to be changed or deleted. To delete the row, right-click the row and select **Delete**. To change data in one or more columns, modify the data in the column.
> **IMPORTANT!!** You cannot delete a row if the view references more than one base table. You can only update columns that belong to a single base table.
5. To insert a row, scroll down to the end of the rows and insert the new values.
> **IMPORTANT!** You cannot insert a row if the view references more than one base table.
## Using Transact-SQL
#### To update table data through a view
1. In **Object Explorer**, connect to an instance of [!INCLUDE[ssDE](../../includes/ssde-md.md)].
2. On the Standard bar, click **New Query**.
3. Copy and paste the following example into the query window and click **Execute**. This example changes the value in the `StartDate` and `EndDate` columns for a specific employee by referencing columns in the view `HumanResources.vEmployeeDepartmentHistory`. This view returns values from two tables. This statement succeeds because the columns being modified are from only one of the base tables.
```
USE AdventureWorks2012 ;
GO
UPDATE HumanResources.vEmployeeDepartmentHistory
SET StartDate = '20110203', EndDate = GETDATE()
WHERE LastName = N'Smith' AND FirstName = 'Samantha';
GO
```
For more information, see [UPDATE (Transact-SQL)](../../t-sql/queries/update-transact-sql.md).
#### To insert table data through a view
1. In **Object Explorer**, connect to an instance of [!INCLUDE[ssDE](../../includes/ssde-md.md)].
2. On the Standard bar, click **New Query**.
3. Copy and paste the following example into the query window and click **Execute**. The example inserts a new row into the base table `HumanResouces.Department` by specifying the relevant columns from the view `HumanResources.vEmployeeDepartmentHistory`. The statement succeeds because only columns from a single base table are specified and the other columns in the base table have default values.
```
USE AdventureWorks2012 ;
GO
INSERT INTO HumanResources.vEmployeeDepartmentHistory (Department, GroupName)
VALUES ('MyDepartment', 'MyGroup');
GO
```
For more information, see [INSERT (Transact-SQL)](../../t-sql/statements/insert-transact-sql.md).