Share via


Criando uma tabela por meio de um tipo de dados hierarchyid

O exemplo a seguir cria uma tabela denominada EmployeeOrg, que inclui dados de funcionários juntamente com a respectiva hierarquia de subordinação. O exemplo cria a tabela no banco de dados AdventureWorks2012 , mas isso é opcional. Para manter o exemplo simples, essa tabela inclui somente cinco colunas:

  • OrgNode é uma coluna hierarchyid que armazena a relação hierárquica.

  • OrgLevel é uma coluna computada, baseada na coluna OrgNode que armazena cada nível de nó na hierarquia. Ela será usada para um índice por amplitude.

  • EmployeeID contém o número de identificação de funcionário comum usado para aplicativos, como folha de pagamento. No desenvolvimento de novos aplicativos, os aplicativos podem usar a coluna OrgNode e essa coluna EmployeeID separada não é necessária.

  • EmpName contém o nome do funcionário.

  • Title contém o cargo do funcionário.

Para criar a tabela EmployeeOrg

  1. Em uma janela do Editor de Consulta, execute o código a seguir para criar a tabela EmployeeOrg. A especificação da coluna OrgNode como a chave primária com um índice clusterizado criará um índice por amplitude:

    USE AdventureWorks2012 ;
    GO
    CREATE TABLE HumanResources.EmployeeOrg
    (
       OrgNode hierarchyid PRIMARY KEY CLUSTERED,
       OrgLevel AS OrgNode.GetLevel(),
       EmployeeID int UNIQUE NOT NULL,
       EmpName varchar(20) NOT NULL,
       Title varchar(20) NULL
    ) ;
    GO
    
  2. Execute o seguinte código para criar um índice composto nas colunas OrgLevel e OrgNode para oferecer suporte a pesquisas eficientes por amplitude:

    CREATE UNIQUE INDEX EmployeeOrgNc1 
    ON HumanResources.EmployeeOrg(OrgLevel, OrgNode) ;
    GO
    

Agora a tabela está pronta para receber dados. A próxima tarefa populará a tabela usando métodos hierárquicos.

Próxima tarefa da lição

Preenchendo uma tabela hierárquica utilizando métodos hierárquicos