뷰 수정Modify Views

뷰를 정의한 후 SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 해당 뷰를 삭제하고 다시 만들지 않고 Transact-SQLTransact-SQL에서 해당 정의를 수정할 수 있습니다.After you define a view, you can modify its definition in SQL Server 2017SQL Server 2017 without dropping and re-creating the view by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

항목 내용In This Topic

시작하기 전 주의 사항 Before You Begin

제한 사항 Limitations and Restrictions

  • 종속 개체를 무효화하는 방식으로 뷰 정의를 변경하지 않는 한 뷰를 수정해도 저장 프로시저나 트리거 등의 종속 개체에는 영향을 주지 않습니다.Modifying a view does not affect any dependent objects, such as stored procedures or triggers, unless the definition of the view changes in such a way that the dependent object is no longer valid.

  • 현재 사용 중인 뷰를 ALTER VIEW를 사용하여 수정하면 데이터베이스 엔진Database Engine 은 해당 뷰에 대한 배타적 스키마 잠금을 얻습니다.If a view currently used is modified by using ALTER VIEW, the 데이터베이스 엔진Database Engine takes an exclusive schema lock on the view. 잠금이 부여되고 현재 뷰를 사용 중인 사용자가 없으면 데이터베이스 엔진Database Engine 은 프로시저 캐시에서 뷰의 복사본을 모두 삭제합니다.When the lock is granted, and there are no active users of the view, the 데이터베이스 엔진Database Engine deletes all copies of the view from the procedure cache. 해당 뷰를 참조하는 기존 계획은 캐시에 남아 있지만 다음 호출 시 다시 컴파일됩니다.Existing plans referencing the view remain in the cache but are recompiled when invoked.

  • 인덱싱된 뷰에도 ALTER VIEW를 적용할 수 있지만 ALTER VIEW는 뷰에 대한 모든 인덱스를 무조건 삭제합니다.ALTER VIEW can be applied to indexed views; however, ALTER VIEW unconditionally drops all indexes on the view.

보안 Security

사용 권한 Permissions

ALTER VIEW를 실행하려면 최소 OBJECT에 대한 ALTER 권한이 필요합니다.To execute ALTER VIEW, at a minimum, ALTER permission on OBJECT is required.

SQL Server Management Studio 사용 Using SQL Server Management Studio

뷰를 수정하려면To modify a view

  1. 개체 탐색기에서 뷰가 있는 데이터베이스 옆의 더하기 기호를 클릭한 다음 폴더 옆의 더하기 기호를 클릭합니다.In Object Explorer, click the plus sign next to the database where your view is located and then click the plus sign next to the Views folder.

  2. 수정할 뷰를 마우스 오른쪽 단추로 클릭하고 디자인을 클릭합니다.Right-click on the view you wish to modify and select Design.

  3. 쿼리 디자이너의 다이어그램 창에서 다음과 같은 방법으로 뷰를 변경합니다.In the diagram pane of the query designer, make changes to the view in one or more of the following ways:

    1. 추가하거나 제거할 요소의 확인란을 선택하거나 선택을 취소합니다.Select or clear the check boxes of any elements you wish to add or remove.

    2. 다이어그램 창 내부를 마우스 오른쪽 단추로 클릭하고 테이블 추가...를 선택한 다음 테이블 추가 대화 상자에서 뷰에 추가할 열을 선택합니다.Right-click within the diagram pane, select Add Table…, and then select the additional columns you want to add to the view from the Add Table dialog box.

    3. 제거할 테이블의 제목 표시줄을 마우스 오른쪽 단추로 클릭하고 제거를 선택합니다.Right-click the title bar of the table you wish to remove and select Remove.

  4. 파일 메뉴에서 저장view name을 클릭합니다.On the File menu, click Saveview name.

Transact-SQL 사용 Using Transact-SQL

뷰를 수정하려면To modify 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. 다음 예에서는 먼저 뷰를 만든 다음 ALTER VIEW를 사용하여 이 뷰를 수정합니다.The example first creates a view and then modifies the view by using ALTER VIEW. WHERE 절이 뷰 정의에 추가됩니다.A WHERE clause is added to the view definition.

    USE AdventureWorks2012 ;  
    GO  
    -- Create a view.  
    CREATE VIEW HumanResources.EmployeeHireDate  
    AS  
    SELECT p.FirstName, p.LastName, e.HireDate  
    FROM HumanResources.Employee AS e JOIN Person.Person AS  p  
    ON e.BusinessEntityID = p.BusinessEntityID ;   
    
    -- Modify the view by adding a WHERE clause to limit the rows returned.  
    ALTER VIEW HumanResources.EmployeeHireDate  
    AS  
    SELECT p.FirstName, p.LastName, e.HireDate  
    FROM HumanResources.Employee AS e JOIN Person.Person AS  p  
    ON e.BusinessEntityID = p.BusinessEntityID  
    WHERE HireDate < CONVERT(DATETIME,'20020101',101) ;   
    GO  
    

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