 <p>It's best if you can add a field that will not display on the application for the file unique_id in the table and then use that in a join to the data to populate the child tables. But sometimes you can't mess with the structure of a database especially if it is a COTS product. </p> <p>We have a sneaky trick for that. First load the data to a staging table (adding an identity if the file has no unique identifier on it's own) and an empty field for the parent_id. </p> <p>Next put the unique identifier into some other required field instead of its normal value (We use last_name but if you have one taht is the same datatype as the uniqueid that's better). Then you can join on the required field and the uniqueid from the staging table to update it to get the real parentid. Then update the field where you stored the temporary id with its real value (becasue now you can use teh real parent_id). Now you have the real parent_id in a table, the data flows for the child tables can join to that. This creates more work for the database, so only use it if you can't change the structure. </p> <p>Alternatively you can do all the inserting from a staging table using a stored proc and the execute SQL task rather than in a dataflow.</p>