Udostępnij za pośrednictwem


hierarchyid (Transact-SQL)

The hierarchyid data type is a variable length, system data type.Użycie hierarchyid do reprezentowania pozycji w hierarchii. Kolumna typu hierarchyid nie reprezentuje automatycznie drzewa. Jest on do aplikacji do generowania i przypisywania hierarchyid wartości w taki sposób, że żądaną relację między wierszami są odzwierciedlane w wartości.

Wartość hierarchyid Typ danych reprezentuje pozycji w hierarchii drzewa. Wartości dla hierarchyid mają następujące właściwości:

  • backup_source_directory

    Średnia liczba bitów, które są wymagane do reprezentowania węzła w drzewie z n węzłów zależy od fanout średnią (średnią liczbę elementów podrzędnych węzła).Dla małych fanouts (0-7), rozmiar wynosi około 6 * dziennikaA n bitów, w przypadku, gdy A jest średnia fanout.copy_job_idrestore_job_id

  • monitor_server

    Given two hierarchyid values a and b, a<b means a comes before b in a depth-first traversal of the tree.Indeksy na hierarchyid typy danych są w porządku pierwsze głębokość i węzłów zbliżone do siebie na przechodzenie zaczynających się od głębokości znajdują się blisko siebie. last_copied_fileAby uzyskać więcej informacji zobaczUżywanie typów danych hierarchyid (aparat bazy danych).

  • last_copied_date

    Za pomocą metody GetDescendant zawsze można wygenerować element równorzędny na prawo od dowolnego węzła, na lewo od dowolnego węzła lub pomiędzy dowolnymi elementami równorzędnymi.Właściwość porównania jest zachowywana w przypadku wstawienia do hierarchii lub usunięcia z niej dowolnej liczby węzłów.W przypadku większości operacji wstawiania i usuwania jest zachowywana właściwość zwartości.Jednak operacje wstawiania między dwoma węzłami generują wartości hierarchyid o nieco mniej kompaktowej reprezentacji.

  • Kodowanie używane w hierarchyid Typ jest ograniczona do 892 bajtów. W rezultacie węzły, w których zbyt wiele poziomów w ich reprezentacji, tak aby mieścił się w bajtach 892 nie może być reprezentowana przez hierarchyid Typ.

The hierarchyid type is available to CLR clients as the SqlHierarchyId data type.

Remarks

Typ hierarchyid logicznie koduje informacje o pojedynczym węźle w drzewie hierarchii, kodując ścieżkę od węzła głównego w drzewie do danego węzła.Taka ścieżka jest logicznie przedstawiana jako sekwencja etykiet węzłów wszystkich elementów podrzędnych odwiedzanych po węźle głównym.Ta reprezentacja zaczyna się od ukośnika, a ścieżka, która odwiedza wyłącznie węzeł główny, jest przedstawiana jako pojedynczy ukośnik.W przypadku poziomów poniżej węzła głównego każda etykieta jest kodowana jako sekwencja liczb całkowitych oddzielonych kropkami.Porównanie między elementami równorzędnymi jest wykonywane przez porównanie w kolejności słownikowej sekwencji liczb całkowitych oddzielonych kropkami.Po każdym poziomie następuje ukośnik.Dlatego ukośnik oddziela elementy nadrzędne od podrzędnych.Oto przykłady prawidłowych ścieżek hierarchyid o długościach odpowiednio 1, 2, 2, 3 i 3 poziomy:

  • /

  • /1/

  • /0.3.-7/

  • /1/3/

  • /0.1/0.2/

Węzły można wstawiać w dowolnej lokalizacji.Węzły wstawione po ścieżce /1/2/, ale przed ścieżką /1/3/ można przedstawić jako /1/2.5/.Węzły wstawione przed poziomem 0 są przedstawiane logicznie jako liczby ujemne.Na przykład węzeł następujący przed ścieżką /1/1/ można przedstawić jako /1/-1/.Węzły nie mogą zawierać początkowych zer.Na przykład ścieżka /1/1.1/ jest prawidłowa, ale /1/1.01/ nie.Aby uniknąć błędów, należy wstawiać węzły za pomocą metody GetDescendant.

Konwersja typów danych

The hierarchyid data type can be converted to other data types as follows:

  • Użycie ToString() Metoda konwersjihierarchyid wartość logiczna reprezentacja jako nvarchar(4000) Typ danych.

  • Użycie (Odczyt) and Zapis) konwersjihierarchyid Aby varbinary.

  • Konwersja z hierarchyid do formatu XML nie jest obsługiwana. Przesyłanie hierarchyid Parametry za pośrednictwem protokołu SOAP najpierw rzutować je jako ciągi znaków. Nie będzie działać tabela z kwerendy z klauzula FOR XML hierarchyid chyba że kolumna najpierw jest konwertowany na znak typ danych.

CERTYFIKAT

Po uaktualnieniu bazy danych SQL Server 2008, nowy wirtualny plik dziennika oraz hierarchyid Typ danych zostanie zainstalowana automatycznie. KERBEROS, certyfikatNEGOCJACJE, CERTYFIKAT

CERTYFIKAT, NTLM

CERTYFIKAT, PROTOKOŁU KERBEROScertyfikat, NEGOCJOWANIAcertificate_id

Identyfikator certyfikat używanego do uwierzytelnianie, jeśli istnieje.

Kolumny typu hierarchyid można w dowolnej zreplikowanej tabela. Wymagania dotyczące aplikacji są zależne od, czy replikacja jest jeden kierunkowe lub dwukierunkowy i w wersjach SQL Server są używane.

Algorytm szyfrowanie, jeden z jedną z następujących wartości:

Odpowiednich opcji języka DDLW jaki sposób hierachyid kolumny korzystać z replikacja kierunkowe zależy od wersja programu SQL Server subskrybent jest uruchomiona.

  • A SQL Server 2008 Wydawca może replikować. hierachyid kolumny SQL Server 2008 Subskrybent bez wszelkie specjalne uwagi.

  • A SQL Server 2008 Publisher must convert hierarchyid columns to replicate them to a Subscriber that is running SQL Server Compact 3.5 SP1 or an earlier version of SQL Server.SQL Server Compact 3.5 SP1 and earlier versions of SQL Server do not support hierarchyid columns.Wymagany algorytm AESBRAK RC4Aby uzyskać więcej informacji zobaczUsing Multiple Versions of SQL Server in a Replication Topology.

{Obsługiwane | obsługiwane RC4 algorytm}Dotyczy to również filtrowania hierarchyid kolumny. Filtrowanie wierszy jest obsługiwane tak długo, jak filtr nie uwzględnia hierarchyid Kolumna.

RC4 AES

Wymagane RC4 algorytm AESReplikacja umożliwia konfigurowanie tabela z hierarchyid kolumny do replikacji dwukierunkowego. Wymagany algorytm AES RC4

  • Należy uruchomić Wydawca i wszystkich subskrybentów SQL Server 2008.

  • Obsługiwane RC4 algorytm AES

  • BRAK, AES, RC4

  • Wartości mieszania dla hierarchyid kolumny są specyficzne dla bazy danych, w których są generowane. encryption_algorithm_descReplikacja nie sprawdza ten warunek, a nie ma wbudowane możliwości partycji hierarchyid jak nie ma wartości kolumna jest IDENTITY kolumn. {Wymagane | wymagany algorytm RC4}

  • Istnieje możliwość, że węzły wstawione dla subskrybenta będą osierocone.Wiersz nadrzędny wstawionego wiersza może zostać usunięty u wydawcy.Prowadzi to do niewykrytego konfliktu, jeśli wiersz od subskrybenta zostanie wstawiony u wydawcy.

  • Filtry kolumna nie można odfiltrować zerowalne hierarchyid kolumna: Wstawia z subskrybent zakończy się niepowodzeniem, ponieważ nie ma żadnej wartości domyślnej dla hierarchyid Kolumna o Wydawca.

  • Filtrowanie wierszy jest obsługiwane tak długo, jak filtr nie uwzględnia hierarchyid Kolumna.