Společnost At Mitch poukazuje na funkce hromadného kopírování (SqlBulkCopy
, bcp
a BULK INSERT
) zpracovává pouze vložky, nikoli aktualizace.
Normální přístup k vašemu problému je provést hromadné načtení ve dvou (nebo více) krocích – nejprve použijete hromadné vkládání k načtení dat do pracovní tabulky a poté pomocí dotazu vložíte/aktualizujete záznamy v hlavních tabulkách na základě data v pracovních tabulkách, například:
INSERT INTO MyTable
(Column1, Column2, [etc...])
SELECT Column1, Column2, [etc...]
FROM Test_Staging
WHERE [Some condition]
Viz SQL SERVER – Vkládání dat z jedné tabulky do druhé pro informace o tom, jak vkládat do jedné tabulky z jiné tabulky - je také možné provést spojení v UPDATE, ale snažím se najít dobrý zdroj na toto.