--- 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).