MSSQL에서 VIEW에 사용하는 WITH SCHEMABINDING은
해당 뷰가 참조하고 있는 **테이블이나 객체의 스키마(구조)를 고정(bind)**시키는 옵션입니다.
쉽게 말해, 뷰가 사용하는 테이블 구조를 마음대로 변경하지 못하게 막는 역할을 합니다.
주요 특징
- 뷰가 참조하는 테이블의 컬럼을
- 삭제
- 타입 변경
- 이름 변경
하려고 하면 오류가 발생합니다.
즉, 뷰와 테이블 간 구조적 일관성을 강제로 유지합니다.
- WITH SCHEMABINDING을 사용하면
- SELECT * 사용 불가
- 테이블명 앞에 반드시 스키마명(dbo.TableName) 명시 필요
같은 제약이 생깁니다.
이는 뷰 정의를 명확하게 고정하기 위한 규칙입니다.
- **인덱스드 뷰(Indexed View)**를 만들기 위한 필수 조건입니다.
성능 향상을 위해 뷰에 인덱스를 생성하려면 반드시 WITH SCHEMABINDING이 필요합니다.
사용 예 CREATE VIEW dbo.vSample
WITH SCHEMABINDING
AS
SELECT
Id,
Name
FROM dbo.SampleTable;
언제 사용하는가
- 인덱스드 뷰를 생성해야 할 때
- 중요한 뷰가 테이블 구조 변경으로 깨지는 것을 방지하고 싶을 때
- 데이터베이스 구조 안정성이 중요한 운영 환경일 때
정리 WITH SCHEMABINDING은
“이 뷰는 이 테이블 구조에 강하게 의존하니, 함부로 구조를 바꾸지 말라”는 의미의 안전장치입니다.
성능 최적화와 구조 보호가 목적일 때 사용하는 옵션입니다.