sql >> Databasteknik >  >> RDS >> Sqlserver

sqlbulkcopy, jag vill skriva över aktuella rader i databasen

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.



  1. Visa öppna transaktioner i MySQL

  2. Hur man tar bort dubblettrad med tanke på den arabiska fonetiken

  3. Ta reda på standard SQL Server-schema för session

  4. Använder UNNEST med en JOIN