Вы описываете две различные проблемы:
- импорт CSV и
- извлечение данных только в эти 6 полей.
Итак, разбейте свое решение на два этапа:
- импортировать CSV в необработанную промежуточную таблицу и
- затем вставьте в свои шесть «живых» полей из этой промежуточной таблицы.
Существует функция для первой части, которая называется BULK INSERT , синтаксис выглядит так:
BULK INSERT target_staging_table_in_database
FROM 'C:\Path_to\CSV_file.csv'
WITH
(
DATAFILETYPE = 'CHAR'
,FIRSTROW = 2
,FIELDTERMINATOR = ','
,ROWTERMINATOR = '\n'
);
Отрегулируйте по вкусу, и обратитесь к документации для получения дополнительных вариантов. Вы также можете захотеть TRUNCATE
или DELETE FROM
вашей промежуточной таблицы перед выполнением массовой вставки, чтобы у вас там не было старых данных.
Как только вы получите информацию в базу данных, просто наберите UPDATE
или INSERT
в этих шести полях.