Aggiornare la tabella del server SQL utilizzando Datatbale

c# datatable sqlbulkcopy

Domanda

Ho nella tabella di memoria (DataTable), voglio aggiornare la tabella SQL con l'aiuto del DataTable in un colpo solo (aggiornamento in blocco). So come inserire i dati di massa da DataTable alla tabella SQL. C'è un modo per aggiornare in massa?

Risposta accettata

MODIFICATO: ha interpretato erroneamente la domanda originale. Ecco l'aggiornamento collettivo:

UPDATE <table> SET tbl.value = dt.value
    FROM @Datatable dt
    INNER JOIN <table> tbl ON tbl.<id_column> = dt.<id_column>

Risposta popolare

È possibile utilizzare uno dei metodi UpdateDataSet () del blocco Data Library di MS Enterprise.

Questi leggeranno lo stato delle righe (aggiungi, aggiorna, cancella) di ogni riga ed eseguiranno il comando chiamato nel metodo UpdateDataSet (). Con un server database ragionevole, questo può gestire alcune migliaia di record in pochi secondi.

L'unico inconveniente che ho riscontrato è che non può restituire valori IDENTITY appena inseriti, ma è abbastanza semplice selezionarli dal database dopo che l'inserimento è stato completato e rimapparli nel datatable.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché