El problema fundamental con las listas de adyacencia es que no existe una forma general en SQL para extraer un subárbol completo, por lo que ya tiene el problema de identificar todas las filas que necesita duplicar sin recurrir a un cursor.
Si es posible, migre su lista de adyacencia a un modelo de conjunto anidado que le permita identificar fácilmente todos los nodos de un subárbol. Sin embargo, el mantenimiento de un modelo de conjunto anidado es más complejo para inserciones y eliminaciones generales.
EDITAR:Como lo señaló 'a_horse_with_no_name' hay is una forma en SQL general de procesar listas de adyacencia, expresiones de tablas comunes recursivas.