Есть несколько вариантов. Вот основные из них, которые приходят на ум.
SSIS - службы интеграции с SQL Server: это инструмент ETL для SQL Server, позволяющий перемещать данные практически из любого источника в практически любое место назначения, и это может быть довольно быстрым.
BCP - программа массового копирования: это инструмент командной строки, который поставляется с SQL Server. Это очень хорошо для перемещения текстовых файлов в SQL Server, или вы можете экспортировать в собственный формат из одного SQL Server и импортировать, используя тот же формат в другой SQL Server. BCP также очень быстрый, но более ограниченный, чем SSIS.
INSERT INTO tablename ВЫБРАТЬ список полей ИЗ других таблиц : Предполагается, что вы переходите от одной таблицы SQL к другой на том же сервере. Это самая быстрая, но при 500 тыс. Строк вы смотрите на довольно крупную транзакцию или вынуждены разбивать ее, как вы сказали.
OPENROWSET : это функция SQL Server, которая позволит вам извлекать данные в таблицу из различных форматов. Это также должно быть довольно быстро, но я не работал с этим много.
Общее примечание: ваш первичный ключ - mbr_id. Если это то, что хранится в ваших исходных данных (в отличие от столбца идентификаторов), ваша вставка будет работать НАМНОГО быстрее, если исходные данные будут в порядке mbr_id.