Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Instruction de sélection/insertion de base de données hiérarchique (SQL Server)

Si vous utilisez SQL Server 2005 ou supérieur, vous pouvez utiliser des requêtes récursives pour obtenir vos informations. Voici un exemple :

With tree (id, Name, ParentID, [level])
As (
    Select id, Name, ParentID, 1
    From [myTable]
    Where ParentID = 0

    Union All

    Select child.id
          ,child.Name
          ,child.ParentID
          ,parent.[level] + 1 As [level]
    From [myTable] As [child]
    Inner Join [tree] As [parent]
    On [child].ParentID = [parent].id)
Select * From [tree];

Cette requête renverra la ligne demandée par la première partie (Où ParentID =0) et toutes les sous-lignes de manière récursive. Cela vous aide-t-il ?

Je ne suis pas sûr de comprendre ce que vous voulez qu'il se passe avec votre insert. Pouvez-vous fournir plus d'informations sur le résultat attendu lorsque vous avez terminé ?

Bonne chance !