SqlBulkCopy Fehlerbehandlung / weiter bei Fehler

Ich versuche, große Datenmengen in den SQL Server einzufügen. Meine Zieltabelle hat einen eindeutigen Index mit dem Namen "Hash".

Ich möchte meine SqlDataAdapter-Implementierung durch SqlBulkCopy ersetzen. In SqlDataAapter gibt es eine Eigenschaft namens "ContinueUpdateOnError", wenn sie auf true adapter gesetzt ist. Update (table) fügt alle möglichen Zeilen ein und markiert die Fehlerzeilen mit der RowError-Eigenschaft.

Die Frage ist, wie ich mit SqlBulkCopy so schnell wie möglich Daten einfügen kann, während ich verfolge, welche Zeilen eingefügt wurden und welche nicht (aufgrund des eindeutigen Index)?

Hier sind die zusätzlichen Informationen:

Der Vorgang ist iterativ und wird häufig nach einem Zeitplan wiederholt.

Die Quell- und Zieltabellen können sehr groß sein, manchmal Millionen von Zeilen.

Obwohl es möglich ist, zuerst nach den Hash-Werten zu suchen, sind zwei Transaktionen pro Zeile erforderlich (zuerst zum Auswählen des Hashs aus der Zieltabelle und dann zum Einfügen). Ich denke, im Fall von adapter.update (table) ist es schneller, nach dem RowError zu suchen, als nach Hash-Treffern pro Zeile.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage