mssql view 예제


이 예제에서는 뷰가 기반이 되는 테이블(직원 및 지역)은 사용자 gdb가 소유합니다. 뷰를 만드는 사용자는 사용자 로켓입니다. SQL Server 뷰는 데이터 액세스를 단순화하고 제어하는 필터로 생각할 수 있습니다. 기본적으로 해당 쿼리에서 반환되는 데이터의 스냅숏을 제공하는 명명된 쿼리입니다. SQL Server 뷰를 사용하면 데이터를 표시하는 방법에 집중하고 사용자 지정할 수 있을 뿐만 아니라 기본 데이터 구조를 추상화하여 추가 보안 계층을 제공할 수도 있습니다. 뷰의 기반이 되는 테이블에 대한 액세스 권한을 부여하지 않고 보기에 대한 액세스 권한을 부여할 수 있습니다. 뷰는 가상 테이블로 간주할 수 있습니다. 일반적으로 테이블에는 정의 집합이 있으며 데이터를 물리적으로 저장합니다. 뷰에는 테이블 또는 다른 뷰 위에 빌드되는 정의 집합도 있으며 데이터를 물리적으로 저장하지 않습니다.

다음 예제에서는 기본 제공 함수를 포함하는 뷰 정의를 보여 주었습니다. 함수를 사용할 때는 파생 된 열에 대 한 열 이름을 지정 해야 합니다. 멤버 테이블의 동일한 열에 둘 이상의 제약 조건이 있는 경우 Database Engine은 모든 제약 조건을 무시하고 뷰가 분할된 뷰인지 여부를 결정할 때 이를 고려하지 않습니다. 분할된 뷰의 조건을 충족하려면 분할 열에 하나의 분할 제약 조건만 있어야 합니다. 복제에 관련된 멤버 테이블에 분할된 뷰를 만들려면 데이터베이스에서 CREATE VIEW 권한과 뷰가 생성되는 스키마에 대한 ALTER 사용 권한이 필요합니다. 이 예제에서 사용자 로켓은 직원 테이블에 뷰(view_dept_201)를 만들어 부서가 201인 행에만 대한 액세스를 제한하고 지역 별 정보가 있는 뷰를 작성하려고 합니다. 우리는 다음과 같은 SQL 문을 발행 할 것이다 : TOP는 WITH CHECK OPTION 절과 함께 보기의 select_문에서 아무 데도 사용되지 않습니다. 이렇게 하면 지역 레코드별로 판매를 저장하도록 정의된 V_REGION_SALES라는 뷰가 표시됩니다. 이 보기의 내용을 찾으려면 입력합니다. 간단한 보기는 열 조합을 자주 쿼리할 때 유용합니다. 이 보기의 데이터는 AdventureWorks2012 데이터베이스의 인적 자원.직원 및 Person.Person 테이블에서 가져옵니다. 이 데이터는 어드벤처 워크 사이클의 직원에 대한 이름과 고용 날짜 정보를 제공합니다.

이 사용자는 이 테이블의 모든 데이터에 대한 액세스 권한을 부여하지 않고 작업 기념일추적 담당자를 위해 뷰를 만들 수 있습니다. 멤버 테이블 중 하나에 트리거 또는 ON UPDATE CASCADE/SET NULL/SET 기본값 또는 삭제 CASCADE/SET NULL/SET 기본 제약 조건이 포함된 경우 뷰를 수정할 수 없습니다. Dispatch_mgr 사용자는 이제 view_dept_201에 액세스하여 모든 부서 201명의 직원에 대한 직원 레코드를 확인하고 ArcMap 또는 ArcGIS Pro의 데이터베이스 연결에서 emp_region_view에 액세스하여 모든 지역을 볼 수 있습니다. dispatch_mgr뷰에서 리전을 쿼리할 때 ArcGIS는 해당 지역의 모든 직원의 지역 이름과 이름과 ID를 반환합니다.