Aktualisieren Sie die SQL Server-Tabelle mit Databbale

c# datatable sqlbulkcopy

Frage

Ich habe in Memory-Tabelle (DataTable), ich möchte SQL-Tabelle mit Hilfe der DataTable auf einmal (Bulk-Update) zu aktualisieren. Ich weiß, wie man Daten von DataTable in SQL-Tabelle massenhaft einfügt. Gibt es eine Möglichkeit zum Massenupdate?

Akzeptierte Antwort

EDITED: Die ursprüngliche Frage falsch gelesen. Hier ist das "Bulk-Update":

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

Beliebte Antwort

Sie können eine der Methoden UpdateDataSet () des MS Enterprise Library Data block verwenden.

Diese lesen den Rowstate (Hinzufügen, Aktualisieren, Löschen) jeder Zeile und führen den in der UpdateDataSet () -Methode genannten Befehl aus. Mit einem vernünftigen Datenbankserver kann dies einige tausend Datensätze in wenigen Sekunden verarbeiten.

Der einzige Nachteil, den ich dabei gefunden habe, ist, dass es keine neu eingefügten IDENTITY-Werte zurückgeben kann, aber es ist einfach, sie nach dem Einfügen aus der Datenbank auszuwählen und sie der Datentabelle neu zuzuordnen.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow