Udostępnij za pośrednictwem


IsDescendantOf (aparat bazy danych)

Zwraca wartość PRAWDA, jeśli to jest ofparent elementów podrzędnych.

Składnia

-- Transact-SQL syntax
child.IsDescendantOf ( parent )

-- CLR syntax
SqlHierarchyId IsDescendantOf (SqlHierarchyId parent ) 

Argumenty

  • parent
    hierarchyid Węzła, dla którego IsDescendantOf Badanie należy przeprowadzić.

Zwracane typy

**SQL Zwracany typ serwera:**bit

**Zwracany typ CLR:**SqlBoolean

Uwagi

Zwraca wartość true dla wszystkich węzłów poddrzewa ukorzenionych nadrzędnego i false dla wszystkich innych węzłach.

Nadrzędny jest uważany za własnych elementów podrzędnych.

Przykłady

A.Za pomocą IsDescendantOf w klauzulaWHERE

Poniższy przykład zwraca Menedżera i pracowników tego raportu do Menedżera:

DECLARE @Manager hierarchyid
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo
  WHERE LoginID = 'adventure-works\dylan0'

SELECT * FROM HumanResources.EmployeeDemo
WHERE OrgNode.IsDescendantOf(@Manager) = 1

B.Ocena relacji przy użyciu IsDescendantOf

Poniższy kod deklaruje i wypełnia trzy zmienne.Następnie ocenia hierarchicznych relacji i zwraca jeden z dwóch drukowane wyniki oparte na porównaniu:

DECLARE @Manager hierarchyid, @Employee hierarchyid, @LoginID nvarchar(256)
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\terri0' ;

SELECT @Employee = OrgNode, @LoginID = LoginID FROM HumanResources.EmployeeDemo
  WHERE LoginID = 'adventure-works\rob0'

IF @Employee.IsDescendantOf(@Manager) = 1
   BEGIN
    PRINT 'LoginID ' + @LoginID + ' is a subordinate of the selected Manager.'
   END
ELSE
   BEGIN
    PRINT 'LoginID ' + @LoginID + ' is not a subordinate of the selected Manager.' ;
   END

C.Wywołanie wspólne środowiska wykonawczego języka metoda

Następujący kod wywoła urywek IsDescendantOf() metoda.

this.IsDescendantOf(Parent)