Это одна из многих причин, по которым я предпочитаю использовать естественные ключи вместо IDENTITY для всех моих первичных ключей.
Как вы узнаете, какие дети идут к какому из родителей в источнике данных? Если они связаны между собой колонкой, то это не должно быть слишком сложно. Вставьте родительские строки, вставьте дочерние строки в промежуточную таблицу, затем вставьте дочерние строки, соединяясь с родителями в этом столбце, чтобы получить идентификатор.
Если отношения связаны просто с относительными позициями в файле или чем-то подобным, тогда это становится более сложным. Вы можете либо включить в файл строку #, а затем выполнить те же действия, что и выше, соединившись с ними (child.line_num> parent.line_num, и между этими двумя числами нет других parent.line_num), или вы можете импортировать родителей по одному в цикл, захватить идентификатор, а затем вставить все его дочерние элементы, используя этот идентификатор. Вы можете настроить это в SSIS без особых проблем, но это может быть медленным.
Более подробно о вашей проблеме (источник данных и т. Д.) Я мог бы предоставить более подробную информацию.