INSERT INTO parentchildtemp (child) VALUES('E986A368-D298-4365-8322-8B57DED43707') DECLARE @topcust as varchar(100) WHILE EXISTS(SELECT * FROM parentchildtemp) BEGIN SET @topcust = (SELECT TOP 1 child FROM parentchildtemp) INSERT INTO parentchildtemp (child) SELECT customerid FROM customer WHERE referralid = @topcust INSERT INTO parentchild (parent,child,currentpos) SELECT @topcust,c.customerid,cdt.currentstatus FROM customer c INNER JOIN customertotable cdt ON c.customerid = cdt.customerid WHERE referralid = @topcust DELETE FROM parentchildtemp WHERE child = @topcust END