Share via


IsDescendantOf (veritabanı altyapısı)

Döndürür doğru Eğer thisüst soyundan olan.

Sözdizimi

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

-- CLR syntax
SqlHierarchyId IsDescendantOf (SqlHierarchyId parent )

Bağımsız değişkenler

  • parent
    hierarchyidDüğümü için hangi IsDescendantOfsınama gerçekleştirilmesi.

Dönüş Türleri

SQL Server döndürme türü: bit

clr döndürme türü: SqlBoolean

Açıklamalar

Alt ağacı tüm düğümler için true döner, diğer tüm düğümleri için üst ve yanlış köklü.

Üst kendi soyundan kabul edilir.

Örnekler

A.where yan tümcesinde IsDescendantOf kullanma

Aşağıdaki örnek yönetici ve çalışanları, rapor Yöneticisi verir:

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

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

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

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

B.Bir ilişki değerlendirmek için IsDescendantOf kullanma

Aşağıdaki kod bildirir ve üç değişken doldurur. Ardından hiyerarşik ilişkileri değerlendirir ve karşılaştırma dayalı iki yazdırma sonuçları döndürür:

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

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.Bir ortak dil çalışma zamanı yöntemi çağırma

Aşağıdaki kod parçacığını aramalar IsDescendantOf()yöntemi.

this.IsDescendantOf(Parent)

this.IsDescendantOf(Parent)

Ayrıca bkz.

Başvuru

hierarchyid (Transact-sql)

Kavramlar

hierarchyid veri türü yöntemi başvurusu

Hiyerarşik veri (SQL Server)