Структура SqlHierarchyId
Тип SqlHierarchyId представляет позицию в иерархической структуре с указанной глубиной и шириной.
Пространство имен: Microsoft.SqlServer.Types
Сборка: Microsoft.SqlServer.Types (в Microsoft.SqlServer.Types.dll)
Синтаксис
[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
Свойства
Имя | Описание | |
---|---|---|
IsNull | Возвращает значение, показывающее, имеет ли идентификатор SqlHierarchyId значение null. |
|
Null | Возвращает SqlHierarchyId с идентификатором иерархии null. |
Методы
Имя | Описание | |
---|---|---|
CompareTo(Object) | Возвращает значение, показывающее результат сравнения SqlHierarchyId с объектом. |
|
CompareTo(SqlHierarchyId) | Возвращает значение, показывающее результат сравнения двух узлов SqlHierarchyId. |
|
Equals(Object) | Определяет, равны ли SqlHierarchyId и obj.(Переопределяет ValueType.Equals(Object).) |
|
GetAncestor(Int32) | Извлекает узел SqlHierarchyId, расположенный на n уровней выше в дереве иерархии. |
|
GetDescendant(SqlHierarchyId, SqlHierarchyId) | Возвращает значение узла-потомка SqlHierarchyId, которое больше, чем child1, и меньше, чем child2. |
|
GetHashCode() | Возвращает хэш пути от корневого узла иерархии до узла SqlHierarchyId.(Переопределяет ValueType.GetHashCode().) |
|
GetLevel() | Возвращает значение, показывающее уровень узла SqlHierarchyId в дереве иерархии. |
|
GetReparentedValue(SqlHierarchyId, SqlHierarchyId) | Возвращает значение, представляющее местоположение нового узла SqlHierarchyId с путем от newRoot, равным пути от oldRoot до this, действительно перемещенного this в новое местоположение. |
|
GetRoot() | Возвращает значение, представляющее корневой узел SqlHierarchyId иерархии. |
|
GetType() | (Наследуется от Object.) |
|
IsDescendantOf(SqlHierarchyId) | Возвращает значение, показывающее, является ли узел SqlHierarchyId потомком родителя. |
|
Parse(SqlString) | Преобразует каноничное строковое представление узла SqlHierarchyId в значение SqlHierarchyId. |
|
Read(BinaryReader) | Считывает из указанного двоичного модуля чтения в SqlHierarchyId. |
|
ToString() | Возвращает каноничное строковое представление узла SqlHierarchyId из значения SqlHierarchyId.(Переопределяет ValueType.ToString().) |
|
Write(BinaryWriter) | Записывает SqlHierarchyId в указанный двоичный модуль записи. |
Операторы
Имя | Описание | |
---|---|---|
Equality(SqlHierarchyId, SqlHierarchyId) | Оценивает, равны ли два узла SqlHierarchyId. |
|
GreaterThan(SqlHierarchyId, SqlHierarchyId) | Проверяет, что один указанный узел SqlHierarchyId больше другого. |
|
GreaterThanOrEqual(SqlHierarchyId, SqlHierarchyId) | Проверяет, что один указанный узел SqlHierarchyId больше другого или равен другому. |
|
Inequality(SqlHierarchyId, SqlHierarchyId) | Проверяет неравенство двух узлов SqlHierarchyId. |
|
LessThan(SqlHierarchyId, SqlHierarchyId) | Проверяет, что один указанный узел SqlHierarchyId меньше другого. |
|
LessThanOrEqual(SqlHierarchyId, SqlHierarchyId) | Проверяет, что один указанный узел SqlHierarchyId меньше другого или равен другому. |
Комментарии
Этот тип предоставляет следующие преимущества для хранения иерархических данных:
Хранилище данных очень compact.
Сравнение глубину. Индексы на этот тип, в порядке приоритета глубины, и узлы близко друг к другу в обход глубину хранятся рядом друг с другом.
Поддержка произвольных вставок и удалений.
Ограничение типа том, что один экземпляр типа данных иерархии не больше 892 байтами. Иерархии, которые имеют слишком много уровней в соответствии с размерами это ограничение необходимо использовать другой тип данных.
Тип данных HierarchyId доступен клиентам среды CLR в виде типа данных SqlHierarchyId.
Примеры
DECLARE @employee hierarchyid
SELECT @employee = OrgNode FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\dylan0'
SELECT * FROM HumanResources.EmployeeDemo
WHERE @employee.IsDescendantOf(OrgNode) = 1
Потокобезопасность
Любые открытые статические элементы ( Предоставлен общий доступ в Visual Basic) этого типа являются потокобезопасными. Потокобезопасность элементов экземпляров не гарантируется.
См. также
Пространство имен Microsoft.SqlServer.Types
Вернуться в начало