2

这里的想法很少。我有一个案例,我使用 SqlBulkCopy 将数据泵入数据库,大约在中途我遇到了不同的异常(主键违规、索引违规等)。

我已经确认这些违规行为是真实的,需要在数据中进行更正。然而,令人恼火的是,如果我使用 DataAdapter 写入数据库(这会慢得多),DataSet 中的坏行会打开 HasErrors,这样我就可以轻松找到它们并处理事情。使用 SqlBulkCopy?齐尔奇。纳达。祝你好运找到导致你的问题的人,因为你得到的只是一个错误名称(比如“yada yada yada 中的主键违规,等等等等”)就是这样。

有什么建议么?我不敢相信没有办法得到这些错误。使用标准 BCP,我认为您甚至可以将这些内容泵入日志文件。我们不能用 SqlBulkCopy 做这样的事情吗?

谢谢,

4

2 回答 2

0

看看 SqlBulkCopy 的源代码——你会在那里得到答案——那里没有真正的错误处理。

你可以做的一件事,虽然你必须做的很蹩脚,但是运行一个错误批次,批次大小设置为 1。

于 2010-07-27T19:21:47.987 回答
0

当我进行需要验证的数据导入时,我通常会将数据转储到一个表中,该表将按原样获取数据,然后运行存储的 proc 或其他可以以基于集合的方式验证我的数据的 sql,进行转换,并以我可以控制的方式将其放入最终目的地。

于 2010-07-27T19:26:29.857 回答