У меня есть процесс, который массово вставляет в таблицу из CSV. Теперь у меня есть требования, чтобы некоторые данные, поступающие из CSV, содержали «обновленные» записи (данные, которые были импортированы ранее, но теперь имеют изменения).
На данный момент у меня есть таблица, полная дубликатов. Возможно ли BULK INSERT обновить (или даже удалить перед вставкой) записи, основанные на PK?
Я бы не стал добавлять второй шаг в этот процесс для удаления дубликатов.
Edit: вместо промежуточной таблицы я просто собираюсь выполнить запрос на удаление, подобный следующему
declare @tbl table
(
id int,
ref nvarchar(10)
)
insert into @tbl
values(1, 'AAAA'),
(2, 'BBBB'),
(3, 'CCCC'),
(4, 'AAAA'),
(5, 'BBBB'),
(6, 'AAAA')
delete from @tbl where id in (
select id from
(
select
id,
ref,
RANK() OVER(partition by ref order by id desc) as rnk
from @tbl) d
where rnk > 1
)
select * from @tbl