Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Instrução de seleção/inserção de banco de dados hierárquico (SQL Server)


Se você estiver usando o SQL Server 2005 ou superior, poderá usar consultas recursivas para obter suas informações. Aqui está um exemplo:
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];

Essa consulta retornará a linha solicitada pela primeira parte (Onde ParentID =0) e todas as sublinhas recursivamente. Isso ajuda você?

Não tenho certeza se entendi o que você quer que aconteça com sua inserção. Você pode fornecer mais informações em termos do resultado esperado quando terminar?

Boa sorte!