뷰를 통해 데이터 수정Modify Data Through a View

SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 Transact-SQLTransact-SQL에서 기본 테이블의 데이터를 수정할 수 있습니다.You can modify the data of an underlying base table in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

시작하기 전에 Before You Begin

제한 사항 Limitations and Restrictions

사용 권한 Permissions

수행하는 동작에 따라 대상 테이블에 대한 UPDATE, INSERT 또는 DELETE 권한이 필요합니다.Requires UPDATE, INSERT, or DELETE permissions on the target table, depending on the action being performed.

SQL Server Management Studio 사용 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. 뷰를 마우스 오른쪽 단추로 클릭하고 상위 200개의 행 편집을 선택합니다.Right-click the view and select Edit Top 200 Rows.

  3. 수정될 행을 반환하기 위해 SQL 창에서 SELECT 문을 수정해야 할 수도 있습니다.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.

Transact-SQL 사용 Using Transact-SQL

뷰를 통해 테이블 데이터를 업데이트하려면To update table data through a view

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute. 다음 예에서는 뷰 StartDate 의 열을 참조하여 특정 직원의 EndDateHumanResources.vEmployeeDepartmentHistory열 값을 변경합니다.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  
    

    자세한 내용은 UPDATE(Transact-SQL)를 참조하세요.For more information, see UPDATE (Transact-SQL).

뷰를 통해 테이블 데이터를 삽입하려면To insert table data through a view

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute. 다음 예에서는 뷰 HumanResouces.Department 의 관련 열을 지정하여 기본 테이블 HumanResources.vEmployeeDepartmentHistory에 새 행을 삽입합니다.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  
    

    자세한 내용은 INSERT(Transact-SQL)를 참조하세요.For more information, see INSERT (Transact-SQL).