Estructura SqlHierarchyId
El tipo SqlHierarchyId representa una posición en una estructura jerárquica, especificando profundidad y amplitud.
Espacio de nombres: Microsoft.SqlServer.Types
Ensamblado: Microsoft.SqlServer.Types (en Microsoft.SqlServer.Types.dll)
Sintaxis
[SqlUserDefinedTypeAttribute(Format.UserDefined, IsByteOrdered = true,
MaxByteSize = 892, Name = "SqlHierarchyId")]
public struct SqlHierarchyId : IBinarySerialize, INullable, IComparable
[SqlUserDefinedTypeAttribute(Format::UserDefined, IsByteOrdered = true,
MaxByteSize = 892, Name = "SqlHierarchyId")]
public value struct SqlHierarchyId : IBinarySerialize, INullable,
IComparable
[<Sealed>]
[<SqlUserDefinedTypeAttribute(Format.UserDefined, IsByteOrdered = true,
MaxByteSize = 892, Name = "SqlHierarchyId")>]
type SqlHierarchyId =
struct
interface IBinarySerialize
interface INullable
interface IComparable
end
<SqlUserDefinedTypeAttribute(Format.UserDefined, IsByteOrdered := True,
MaxByteSize := 892, Name := "SqlHierarchyId")>
Public Structure SqlHierarchyId
Implements IBinarySerialize, INullable, IComparable
Propiedades
Nombre | Descripción | |
---|---|---|
IsNull | Obtiene un valor que indica si SqlHierarchyId es null. |
|
Null | Obtiene un nodo SqlHierarchyId con una identificación de jerarquía de null. |
Métodos
Nombre | Descripción | |
---|---|---|
CompareTo(Object) | Devuelve un valor que indica los resultados de una comparación entre un nodo SqlHierarchyId y un objeto. |
|
CompareTo(SqlHierarchyId) | Devuelve un valor que indica los resultados de una comparación entre dos nodos SqlHierarchyId. |
|
Equals(Object) | Evalúa si SqlHierarchyId y obj son iguales.(Invalida ValueType.Equals(Object)). |
|
GetAncestor(Int32) | Recupera n niveles del nodo SqlHierarchyId hacia arriba en el árbol jerárquico. |
|
GetDescendant(SqlHierarchyId, SqlHierarchyId) | Obtiene el valor de un nodo SqlHierarchyId descendiente, y que es mayor que child1 y menor que child2. |
|
GetHashCode() | Obtiene un hash de la ruta de acceso del nodo raíz del árbol de jerarquía hasta el nodo SqlHierarchyId.(Invalida ValueType.GetHashCode()). |
|
GetLevel() | Obtiene un valor que indica el nivel del nodo SqlHierarchyId en el árbol de jerarquía. |
|
GetReparentedValue(SqlHierarchyId, SqlHierarchyId) | Obtiene un valor que representa la ubicación de un nuevo nodo SqlHierarchyId que tiene una ruta de acceso desde newRoot igual a la ruta de acceso desde oldRoot hasta this, con lo que, de hecho, se mueve this a la nueva ubicación. |
|
GetRoot() | Obtiene un valor que representa el nodo SqlHierarchyId raíz de la jerarquía. |
|
GetType() | (Heredado de Object). |
|
IsDescendantOf(SqlHierarchyId) | Obtiene un valor que indica si el nodo SqlHierarchyId es descendiente del elemento primario. |
|
Parse(SqlString) | Convierte la representación de cadena canónica de un nodo SqlHierarchyId en un valor SqlHierarchyId. |
|
Read(BinaryReader) | Lee desde un lector binario especificado en un nodo SqlHierarchyId. |
|
ToString() | Devuelve la representación de cadena canónica de un nodo SqlHierarchyId desde un valor SqlHierarchyId.(Invalida ValueType.ToString()). |
|
Write(BinaryWriter) | Escribe un nodo SqlHierarchyId en un escritor binario especificado. |
Operadores
Nombre | Descripción | |
---|---|---|
Equality(SqlHierarchyId, SqlHierarchyId) | Evalúa si dos nodos SqlHierarchyId son iguales. |
|
GreaterThan(SqlHierarchyId, SqlHierarchyId) | Evalúa si un nodo SqlHierarchyId especificado es mayor que otro. |
|
GreaterThanOrEqual(SqlHierarchyId, SqlHierarchyId) | Evalúa si un nodo SqlHierarchyId especificado es mayor o igual que otro. |
|
Inequality(SqlHierarchyId, SqlHierarchyId) | Evalúa si dos nodos SqlHierarchyId no son iguales. |
|
LessThan(SqlHierarchyId, SqlHierarchyId) | Evalúa si un nodo SqlHierarchyId especificado es menor que otro. |
|
LessThanOrEqual(SqlHierarchyId, SqlHierarchyId) | Evalúa si un nodo SqlHierarchyId especificado es menor o igual que otro. |
Comentarios
Este tipo proporciona las siguientes ventajas para almacenar información jerárquica:
Almacenamiento de datos muy compacto.
Comparación de prioridad de profundidad. Índices de este tipo están en orden de prioridad de profundidad y nodos cercanos entre sí en un corte transversal de prioridad de profundidad se almacenan unos junto a otros.
Compatibilidad con inserciones y eliminaciones arbitrarias.
Una limitación de este tipo es que una única instancia del tipo de datos de jerarquía puede ser no supere los 892 bytes. Las jerarquías que posean demasiados niveles para ajustarse a esta limitación deben utilizar un tipo de datos diferente.
El tipo HierarchyId está disponible para los clientes CLR como el tipo de datos SqlHierarchyId.
Ejemplos
DECLARE @employee hierarchyid
SELECT @employee = OrgNode FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\dylan0'
SELECT * FROM HumanResources.EmployeeDemo
WHERE @employee.IsDescendantOf(OrgNode) = 1
Seguridad para subprocesos
Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.
Ver también
Espacio de nombres Microsoft.SqlServer.Types
Volver al principio