Share via


IsDescendantOf (Mecanismo de Banco de Dados)

Retornará true se this for descendente de um pai.

Sintaxe

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

-- CLR syntax
SqlHierarchyId IsDescendantOf (SqlHierarchyId parent )

Argumentos

  • parent
    O nó hierarchyid para o qual o teste IsDescendantOf deve ser executado.

Tipos de retorno

Tipo de retorno do SQL Server: bit

Tipo de retorno CLR: SqlBoolean

Comentários

Retornar true para todos os nós na subárvore com raiz em pai e false para todos os outros nós.

Pai é considerado seu próprio descendente.

Exemplos

A.Usando IsDescendantOf em uma cláusula WHERE

O exemplo a seguir retorna um gerente e os funcionários que pertencem àquele gerente:

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

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

B.Usando IsDescendantOf para avaliar uma relação

O código a seguir declara e popula três variáveis. Depois, ele avalia a relação hierárquica e retorna um dos dois resultados impressos com base na comparação:

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.Chamando um método de tempo de execução de linguagem comum

O trecho de código a seguir chama o método IsDescendantOf().

this.IsDescendantOf(Parent)

Consulte também

Referência

hierarchyid (Transact-SQL)

Conceitos

Referência de método de tipo de dados hierarchyid

Dados hierárquicos (SQL Server)