뷰 수정

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

보기를 정의한 후에는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 보기를 삭제하고 다시 만들지 않고 SQL Server 데이터베이스 엔진에서 해당 정의를 수정할 수 있습니다.

제한 사항

  • 뷰의 정의가 종속 개체가 더 이상 유효하지 않은 방식으로 변경되지 않는 한 뷰 수정은 저장 프로시저 또는 트리거와 같은 종속 개체에 영향을 주지 않습니다.

  • 현재 사용 중인 뷰를 ALTER VIEW를 사용하여 수정하면 데이터베이스 엔진은 해당 뷰에 대한 배타적 스키마 잠금을 얻습니다. 잠금이 부여되고 현재 뷰를 사용 중인 사용자가 없으면 데이터베이스 엔진은 프로시저 캐시에서 뷰의 복사본을 모두 삭제합니다. 해당 뷰를 참조하는 기존 계획은 캐시에 남아 있지만 다음 호출 시 다시 컴파일됩니다.

  • 인덱싱된 뷰에도 ALTER VIEW를 적용할 수 있지만 ALTER VIEW는 뷰에 대한 모든 인덱스를 무조건 삭제합니다.

사용 권한

ALTER VIEW를 실행하려면 최소 OBJECT에 대한 ALTER 권한이 필요합니다.

SQL Server Management Studio 사용

  1. 개체 탐색기에서 보기가 있는 데이터베이스 옆에 있는 더하기 기호를 선택한 다음 Views 폴더 옆에 있는 더하기 기호를 선택합니다.

  2. 수정하려는 보기를 마우스 오른쪽 단추로 클릭하고 디자인을 선택합니다.

  3. 쿼리 디자이너의 다이어그램 창에서 다음 방법 중 하나 이상의 방법으로 보기를 변경합니다.

    1. 추가하거나 제거할 요소의 확인란을 선택하거나 선택을 취소합니다.

    2. 다이어그램 창 내부를 마우스 오른쪽 단추로 클릭하고 테이블 추가...를 선택한 다음, 테이블 추가 대화 상자에서 뷰에 추가할 열을 선택합니다.

    3. 제거하려는 테이블의 제목 표시줄을 마우스 오른쪽 단추로 클릭하고 제거를 선택합니다.

  4. 파일 메뉴에서 보기 이름 저장을 선택합니다.

Transact-SQL 사용

  1. 개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 선택합니다.

  3. 다음 예제를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다. 이 예제에서는 먼저 뷰를 만든 다음 ALTER VIEW를 사용하여 뷰를 수정합니다. WHERE 절이 뷰 정의에 추가됩니다.

    USE AdventureWorks2022;
    GO
    
    -- Create a view
    CREATE VIEW HumanResources.EmployeeHireDate
    AS
    SELECT p.FirstName,
         p.LastName,
         e.HireDate
    FROM HumanResources.Employee AS e
    INNER 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
    INNER JOIN Person.Person AS p
         ON e.BusinessEntityID = p.BusinessEntityID
    WHERE HireDate < CONVERT(DATETIME, '20020101', 101);
    GO
    

다음 단계