W Mitch wskazuje na funkcje kopiowania zbiorczego (SqlBulkCopy
, bcp
i BULK INSERT
) obsługują tylko wstawki, a nie aktualizacje.
Normalnym podejściem do problemu jest wykonanie ładowania zbiorczego w dwóch (lub więcej) krokach — najpierw używasz wstawiania zbiorczego do załadowania danych do tabeli pomostowej, a następnie za pomocą zapytania wstawiasz/aktualizujesz rekordy w tabelach głównych na podstawie dane w tabelach pomostowych, na przykład:
INSERT INTO MyTable
(Column1, Column2, [etc...])
SELECT Column1, Column2, [etc...]
FROM Test_Staging
WHERE [Some condition]
Zobacz SQL SERVER – Wstaw dane z jednej tabeli do innej aby uzyskać informacje o tym, jak wstawić do jednej tabeli z innej tabeli - możliwe jest również dołączenie w UPDATE, ale mam problem ze znalezieniem dobrego źródła na ten temat.