Раскрытие первичного ключа (ID) по альтернативному (Name) для случая загрузки данных примерно так и происходит, как вы делаете. Реализация может отличаться, но суть та же.
Предусмотрите еще некую таблицу разбора ошибок, куда будут скидываться строки, для которых совпадение по вашему "Name" не было найдено, или было найдено больше одной строки.