At Mitch påpeger massekopieringsfunktionerne (SqlBulkCopy
, bcp
og BULK INSERT
) håndterer kun indstik, ikke opdateringer.
Den normale tilgang til dit problem er at udføre bulk load i to (eller flere) trin - først bruger du bulk inserts til at indlæse dine data i en staging-tabel, og derefter bruge en forespørgsel til at indsætte / opdatere poster i hovedtabellerne baseret på dataene i iscenesættelsestabellerne, for eksempel:
INSERT INTO MyTable
(Column1, Column2, [etc...])
SELECT Column1, Column2, [etc...]
FROM Test_Staging
WHERE [Some condition]
Se SQL SERVER – Indsæt data fra en tabel til en anden tabel for information om, hvordan man indsætter i en tabel fra en anden tabel - det er også muligt at lave en join i en OPDATERING, men jeg kæmper med at finde en god ressource til dette.