SqlBulkCopy Erro ao manipular / continuar em erro

Eu estou tentando inserir uma enorme quantidade de dados no servidor SQL. Minha tabela de destino tem um índice exclusivo chamado "Hash".

Eu gostaria de substituir minha implementação de SqlDataAdapter com SqlBulkCopy. Em SqlDataAapter há uma propriedade chamada "ContinueUpdateOnError", quando definida como true adapter.Update (table) irá inserir todas as linhas possíveis e marcar as linhas de erro com a propriedade RowError.

A questão é como eu posso usar SqlBulkCopy para inserir dados o mais rápido possível enquanto monitora quais linhas foram inseridas e quais linhas não (devido ao índice exclusivo)?

Aqui está a informação adicional:

O processo é iterativo, geralmente definido em um cronograma para ser repetido.

As tabelas de origem e destino podem ser enormes, às vezes milhões de linhas.

Embora seja possível verificar os valores de hash primeiro, é necessário duas transações por linha (primeiro para selecionar o hash da tabela de destino e, em seguida, realizar a inserção). Acho que no caso do adapter.update (table), é mais rápido verificar o RowError do que verificar os hash hits por linha.

questionAnswers(3)

yourAnswerToTheQuestion