다음을 통해 공유


Employee 테이블의 현재 구조 검사

AdventureWorks2012 예제 데이터베이스의 HumanResources 스키마에 Employee 테이블이 있습니다. 원래 테이블이 변경되지 않도록 이 단계에서는 EmployeeDemo라는 Employee 테이블의 복사본을 만듭니다. 예를 단순화하기 위해 원래 테이블에서 5개의 열만 복사합니다. 그런 다음 HumanResources.EmployeeDemo 테이블을 쿼리하여 hierarchyid 데이터 형식을 사용하지 않고 한 테이블에서 데이터가 구조화되는 방식을 검토합니다.

Employee 테이블을 복사하려면

  • 쿼리 편집기 창에서 다음 코드를 실행하여 테이블 구조와 데이터를 Employee 테이블에서 EmployeeDemo라는 새 테이블로 복사합니다.

    USE AdventureWorks ;
    GO
    
    SELECT EmployeeID, LoginID, ManagerID, Title, HireDate 
    INTO HumanResources.EmployeeDemo 
    FROM HumanResources.Employee ;
    GO
    

EmployeeDemo 테이블의 구조와 데이터를 검사하려면

  • 이 새 EmployeeDemo 테이블은 새 구조로 마이그레이션할 수 있는 기존 데이터베이스의 일반적인 테이블을 나타냅니다. 쿼리 편집기 창에서 다음 코드를 실행하여 테이블이 자체 조인을 통해 직원/관리자 관계를 나타내는 방법을 표시합니다.

    SELECT 
         Mgr.EmployeeID AS MgrID, Mgr.LoginID AS Manager, 
         Emp.EmployeeID AS E_ID, Emp.LoginID, Emp.Title
    FROM HumanResources.EmployeeDemo AS Emp
    LEFT JOIN HumanResources.EmployeeDemo AS Mgr
    ON Emp.ManagerID = Mgr.EmployeeID
    ORDER BY MgrID, E_ID
    

    결과 집합은 다음과 같습니다.

    MgrID Manager                 E_ID LoginID                  Title
    NULL NULL                      109 adventure-works\ken0     Chief Executive Officer
    3    adventure-works\roberto0  4   adventure-works\rob0     Senior Tool Designer
    3    adventure-works\roberto0  9   adventure-works\gail0    Design Engineer
    3    adventure-works\roberto0  11  adventure-works\jossef0  Design Engineer
    3    adventure-works\roberto0  158 adventure-works\dylan0   Research and Development Manager
    3    adventure-works\roberto0  263 adventure-works\ovidiu0  Senior Tool Designer
    3    adventure-works\roberto0  267 adventure-works\michael8 Senior Design Engineer
    3    adventure-works\roberto0  270 adventure-works\sharon0  Design Engineer
    6    adventure-works\david0    2   adventure-works\kevin0   Marketing Assistant
    ...
    

    결과로 총 290개의 행이 나타납니다.

ORDER BY 절로 인해 출력에 각 관리자 수준의 직접 보고가 함께 나열되었습니다. 예를 들어 MgrID 3(roberto0)의 모든 직접 보고 7개가 서로 인접하게 나열됩니다. 불가능하지는 않지만 MgrID 3에게 결과적으로 보고하게 되는 모든 직원을 그룹화하기는 훨씬 더 어렵습니다.

다음 태스크에서는 hierarchyid 데이터 형식으로 새 테이블을 만들고 데이터를 새 테이블로 이동합니다.

단원의 다음 태스크

기존 계층적 데이터로 테이블 채우기