Sorry if the title is poorly descriptive, but I can’t do better right now =(
So, I have this master-detail scheme, with the detail being a tree structure (one to many self relation) with n levels (on SQLServer 2005)
I need to copy a detail structure from one master to the another using a stored procedure, by passing the source master id and the target master id as parameters (the target is new, so it doesn’t has details).
I’m having troubles, and asking for your kind help in finding a way to keep track of parent id’s and inserting the children without using cursors or nasty things like that…

This is a sample model, of course, and what I’m trying to do is to copy the detail structure from one master to other. In fact, I’m creating a new master using an existing one as template.
If I understand the problem, this might be what you want:
The trick is to use the old
detail_idas the newparent_idin the initial insert. Then join back to the old set of rows using this relationship, and update the newparent_idvalues.I assumed that
detail_idis an IDENTITY value. If you assign them yourself, you’ll need to provide details, but there’s a similar solution.