Bill Of Materials problem (part three: using HIERARCHYID data type)
Nell’articolo Recursive CTE and Bill Of Materials problem abbiamo largamente parlato delle tecnologie che SQL Server mette a disposizione per ottenere l’esplosione scalare di una distinta materiali, ossia per risolvere il problema noto come “The Bill Of Materials problem”.
Successivamente, nell’articolo Recursive CTEs and Bill Of Materials problem (part two: cyclic references) , per la stessa distinta materiali, abbiamo illustrato una soluzione in grado d’individuare riferimenti ciclici (nei dati) con prestazioni ragionevoli. Per rilevare i riferimenti ciclici abbiamo utilizzato una CTE ricorsiva in cui viene calcolato dinamicamente il path di ogni elemento. Nella SELECT ricorsiva abbiamo utilizzato il predicato LIKE per verificare che l’ID del sotto insieme (elemento) che si sta elaborando non sia già contenuto nel path composto con i riferimenti univoci (IDs) dei sotto insiemi (elementi) a livello superiore.
