Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

sqlbulkcopy, voglio sovrascrivere le righe correnti nel database

A Mitch sottolinea le funzioni di copia in blocco (SqlBulkCopy , bcp e BULK INSERT ) gestisce solo gli inserti, non gli aggiornamenti.

L'approccio normale al problema consiste nell'eseguire il caricamento in blocco in due (o più) passaggi:prima si utilizzano gli inserimenti in blocco per caricare i dati in una tabella di staging, quindi si utilizza una query per inserire/aggiornare i record nelle tabelle principali in base a i dati nelle tabelle di staging, ad esempio:

INSERT INTO MyTable
(Column1, Column2, [etc...])
SELECT Column1, Column2, [etc...] 
FROM Test_Staging
WHERE [Some condition]

Vedi SQL SERVER – Inserisci dati da una tabella a un'altra tabella per informazioni su come inserire in una tabella da un'altra tabella - è anche possibile fare un join in un AGGIORNAMENTO, ma sto lottando per trovare una buona risorsa su questo.