Creación de una tabla mediante el tipo de datos hierarchyid
El ejemplo siguiente crea una tabla denominada EmployeeOrg que contiene los datos del empleado y la jerarquía de informes correspondiente. El ejemplo crea la tabla en la base de datos AdventureWorks, aunque esta ubicación es opcional. Para mantener un esquema sencillo del ejemplo, esta tabla sólo incluye cinco columnas:
OrgNode es una columna de hierarchyid que almacena la relación jerárquica.
OrgLevel es una columna calculada que se basa en la columna OrgNode y que almacena todos los niveles de nodos de la jerarquía. Se usará para crear un índice con prioridad en la amplitud.
EmployeeID contiene el número de identificación típico del empleado que se utiliza para aplicaciones como, por ejemplo, la nómina. En el nuevo desarrollo de aplicaciones, las aplicaciones pueden utilizar la columna OrgNode y la columna EmployeeID independiente no es necesaria.
EmpName contiene el nombre del empleado.
Title contiene el puesto del empleado.
Para crear la tabla EmployeeOrg
En una ventana del editor de consultas, ejecute el código siguiente para crear la tabla EmployeeOrg. Al establecer la columna OrgNode como la clave principal con un índice agrupado, se creará un índice con prioridad en la profundidad:
USE AdventureWorks 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
Ejecute el código siguiente para crear un índice compuesto en las columnas OrgLevel y OrgNode que admita búsquedas eficaces con prioridad en la amplitud:
CREATE UNIQUE INDEX EmployeeOrgNc1 ON HumanResources.EmployeeOrg(OrgLevel, OrgNode) ; GO
Ahora ya puede usar la tabla para trabajar con datos. La siguiente tarea rellenará la tabla mediante métodos jerárquicos.