Compartilhar via


Criando uma tabela usando um tipo de dados hierarchyid

O exemplo a seguir cria uma tabela com o nome EmployeeOrg, que inclui dados de funcionário junto com sua hierarquia de relatórios. O exemplo cria a tabela no banco de dados AdventureWorks2008R2, 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, com base na coluna OrgNode que armazena cada nível de nó na hierarquia. Será usado para um índice primeiro por abrangência.

  • EmployeeID contém o número de identificação de funcionário comum usado para aplicativos como folha de pagamento. No desenvolvimento de um novo aplicativo, os aplicativos podem usar a coluna OrgNode e a 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 AdventureWorks2008R2 ;
    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.