Copy Row and it's children and it's children
===

This is similar to this question [Copy Row and all of its 'children'][1] but is a little (maybe a lot) more complicated.

I have a table  'Project' which contains some information and UUID. This has a 1:M relationship with table 'Checkpoint'. 'Checkpoint' then has a 1:M relationship with table 'TaskCommon'. 'TaskCommon' then has a 1:1 relationship with table 'TaskSpecific' which is joined based on its 'TaskCommonId' to it's parent.

I need to create a copy function that will take a project, copy it, then all of it's checkpoints, tasks, and specifics.

I plan on using a stored procedure to do all of this and was wondering if there is a better way to do this rather than having to loop through each Checkpoint and then Task.

Is there a way some type of recursive query could be done for this? 

  [1]: http://stackoverflow.com/questions/6767066/copy-row-and-all-of-its-children