At Mitch påpekar bulkkopieringsfunktionerna (SqlBulkCopy
, bcp
och BULK INSERT
) hanterar bara inlägg, inte uppdateringar.
Det normala tillvägagångssättet för ditt problem är att utföra bulkbelastningen i två (eller flera) steg - först använder du bulkinfogningar för att ladda dina data till en iscensättningstabell, och sedan använder du en fråga för att infoga/uppdatera poster i huvudtabellerna baserat på data i stegtabellerna, till exempel:
INSERT INTO MyTable
(Column1, Column2, [etc...])
SELECT Column1, Column2, [etc...]
FROM Test_Staging
WHERE [Some condition]
Se SQL SERVER – Infoga data från en tabell till en annan tabell för information om hur man infogar i en tabell från en annan tabell - det är också möjligt att göra en join i en UPPDATERING, men jag kämpar för att hitta en bra resurs om detta.