Массовая вставка из .csv и обновление, вставка и удаление в таблице - PullRequest
0 голосов
/ 06 августа 2020

Я работаю над хранимой процедурой, которая будет массово вставлять данные из .csv в таблицу, но процедура не должна «вставлять дубликаты». Некоторые из строк могут уже быть в таблице, но некоторые значения могли измениться, я думаю, здесь подойдет UPSERT, но как насчет удаления записей, которые уже существуют в таблице, но не существуют в .csv ?

Конечная цель точно такая же, как очистка всей таблицы и вставка в нее всех данных .csv, но поскольку .csv имеет миллионы записей, и лишь несколько сотен из них меняются время от времени , Я предполагаю, что «обновление» таблицы происходит быстрее, чем ее очистка.

DECLARE @ssql NVARCHAR(4000) = 'BULK INSERT gl_ip_range FROM ''' 
  + @psTempFilePath 
  + 
''' WITH ( FIELDTERMINATOR ='','', ROWTERMINATOR =''\n'', FORMAT =''CSV'', FIRSTROW =2 )' 
; 

В настоящее время я использую приведенный выше код вместе с очисткой таблицы перед вставкой. таблица и вставка миллионов записей будет быстрее, чем делать то, что я пытаюсь достичь?

...