Compartir a través de


IsDescendantOf (motor de base de datos)

Se aplica a: SQL ServerAzure SQL Database Azure SQL Instancia administrada

Devuelve true si this es descendiente del elemento primario.

Sintaxis

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

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

parent
El nodo hierarchyid para el que se debe realizar la prueba IsDescendantOf.

Tipos de valor devuelto

Tipo de valor devuelto de SQL Server:bit

Tipo de valor devuelto de CLR:SqlBoolean

Observaciones

Devuelve true para todos los nodos del subárbol con la raíz en el elemento primario y false para todos los demás nodos.

El elemento primario se considera su propio descendiente.

Ejemplos

A. Usar IsDescendantOf en una cláusula WHERE

El ejemplo siguiente devuelve un administrador y los empleados que dependen de él:

DECLARE @Manager hierarchyid  
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo  
  WHERE LoginID = 'adventure-works\dylan0'  
  
SELECT * FROM HumanResources.EmployeeDemo  
WHERE OrgNode.IsDescendantOf(@Manager) = 1  

B. Usar IsDescendantOf para evaluar una relación

En el código siguiente se declaran y rellenan tres variables. A continuación se evalúa la relación jerárquica y se devuelve uno de dos resultados impresos según la comparación:

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. Llamada de un método del Common Language Runtime

En el fragmento de código siguiente se llama al método IsDescendantOf().

this.IsDescendantOf(Parent)  

Consulte también

Referencia de los métodos del tipo de datos hierarchyid
Datos jerárquicos (SQL Server)
hierarchyid (Transact-SQL)