Compartir a través de


Crear una tabla mediante el tipo de datos hierarchyid

En el ejemplo siguiente se crea una tabla denominada EmployeeOrg que contiene los datos del empleado y su jerarquía correspondiente. El ejemplo crea la tabla en la base de datos AdventureWorks2012 , aunque esta ubicación es opcional. Para mantener un esquema sencillo del ejemplo, esta tabla solo incluye cinco columnas:

  • OrgNode es una columna 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 a la amplitud.

  • EmployeeID contiene el número de identificación típico del empleado que se utiliza para aplicaciones, por ejemplo, la nómina. En el nuevo desarrollo de aplicaciones, las aplicaciones pueden usar 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

  1. En una ventana del Editor de consultas, ejecute el código siguiente para crear la tabla EmployeeOrg. Al especificar la columna OrgNode como la clave principal con un índice clúster, se creará un índice con prioridad a la profundidad:

    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. Ejecute el código siguiente para crear un índice compuesto en las columnas OrgLevel y OrgNode que admita búsquedas eficaces con prioridad a 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.

Siguiente tarea de la lección

Rellenar una tabla jerárquica usando métodos jerárquicos