使用SqlBulkCopy处理错误 - 可能更难吗?

时间:2010-07-27 19:11:26

标签: exception dataset sqlbulkcopy dataadapter

这里的想法非常低落。我有一个案例,我正在使用SqlBulkCopy将数据泵入数据库,大约一半时间我遇到了不同的异常(主键违规,索引违规等)。

我已经确认违规行为确实存在,需要在数据中予以纠正。然而,令人愤怒的是,如果我使用DataAdapter写入数据库(这会慢很多),DataSet中的坏行会打开HasErrors,这样我就可以很容易地找到它们并处理好事情。用SqlBulkCopy?小人物。纳达。祝你找到问题的人好运,因为你得到的只是一个错误名称(比如“yada yada yada中的主键违规,等等等等)”就是这样。

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

THX,

2 个答案:

答案 0 :(得分:0)

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

你可以做的一件事,虽然你需要跛脚,但是要将批量大小设置为1来运行错误批处理。

答案 1 :(得分:0)

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