Le problème fondamental avec les listes de contiguïté est qu'il n'y a pas de moyen général en SQL d'extraire une sous-arborescence entière, vous avez donc déjà un problème d'identification de toutes les lignes que vous devez dupliquer sans recourir à un curseur.
Si possible, migrez votre liste de contiguïté vers un modèle d'ensemble imbriqué qui vous permet d'identifier facilement tous les nœuds d'un sous-arbre. Cependant, la maintenance d'un modèle d'ensemble imbriqué est plus complexe pour les insertions et les suppressions générales.
EDIT :Comme l'a souligné 'a_horse_with_no_name' il y a est un moyen en SQL général de traiter les listes de contiguïté, les expressions de table communes récursives.