Wie man von Fehlern bei der Verwendung von SqlBulkCopy in c #

Ich benutze SqlBulkCopy , um große datamengen in SQL server einzufügen. Der Code ist einfach, wie folgt:

 using (var copy = new SqlBulkCopy(connection)) { copy.BatchSize = 10000; copy.DestinationTableName = "MyTableName"; // other parameters... copy.WriteToserver(reader); } 

Das Problem, das ich habe, ist das datavolumen ist groß, also dauert es sehr lange, bis der Kopiervorgang abgeschlossen ist. Manchmal gibt es vorübergehende Fehler im Netzwerk oder in SQL server, die den WriteToserver Aufruf fehlschlagen WriteToserver .

In diesen Situationen möchte ich die Kopie aus dem fehlgeschlagenen Batch fortsetzen können, anstatt alle data zu löschen und die Kopie von vornherein wieder ganz zu machen. Aber das kann ich nicht, denn zu der time, als ich die aus WriteToserver geworfene exception WriteToserver , wäre das WriteToserver schon in einer falschen Position gewesen.

Eine Lösung, die ich mir vorstellen kann, ist, den ganzen Batch in meinem Code zu cache. Allerdings würde das bedeuten, dass ich den memory für den Cache verwalten muss. Auch ich glaube, dieser Ansatz verletzt die performance sehr.

Gibt es bessere pathe? Vielen Dank.