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
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
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