뷰 수정
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
뷰기를 정의한 후에는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 뷰를 삭제하고 다시 만들지 않고도 SQL Server 데이터베이스 엔진 해당 정의를 수정할 수 있습니다.
제한 사항
뷰의 정의가 종속 개체가 더 이상 유효하지 않은 방식으로 변경되지 않는 한, 뷰 수정은 저장 프로시저 또는 트리거와 같은 종속 개체에 영향을 주지 않습니다.
현재 사용 중인 뷰를 ALTER VIEW를 사용하여 수정하면 데이터베이스 엔진은 해당 뷰에 대한 배타적 스키마 잠금을 얻습니다. 잠금이 부여되고 현재 뷰를 사용 중인 사용자가 없으면 데이터베이스 엔진은 프로시저 캐시에서 뷰의 복사본을 모두 삭제합니다. 해당 뷰를 참조하는 기존 계획은 캐시에 남아 있지만 다음 호출 시 다시 컴파일됩니다.
인덱싱된 뷰에도 ALTER VIEW를 적용할 수 있지만 ALTER VIEW는 뷰에 대한 모든 인덱스를 무조건 삭제합니다.
사용 권한
ALTER VIEW를 실행하려면 최소 OBJECT에 대한 ALTER 권한이 필요합니다.
SQL Server Management Studio 사용
개체 탐색기에서 뷰가 있는 데이터베이스 옆의 더하기 기호를 선택한 다음 뷰 폴더 옆의 더하기 기호를 선택합니다.
수정할 뷰를 마우스 오른쪽 단추로 클릭하고 디자인을 선택합니다.
쿼리 디자이너의 다이어그램 창에서 다음 방법 중 하나 이상의 방법으로 뷰를 변경합니다.
추가하거나 제거할 요소의 확인란을 선택하거나 선택을 취소합니다.
다이어그램 창 내부를 마우스 오른쪽 단추로 클릭하고 테이블 추가...를 선택한 다음, 테이블 추가 대화 상자에서 뷰에 추가할 열을 선택합니다.
제거할 테이블의 제목 표시줄을 마우스 오른쪽 단추로 클릭하고 제거를 선택합니다.
파일 메뉴에서 뷰 이름 저장을 선택합니다.
Transact-SQL 사용
개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 선택합니다.
다음 예시를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다. 이 예시에서는 먼저 뷰를 만든 다음 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