SQL Server批量插入的详细错误信息

时间:2010-03-29 00:28:47

标签: tsql sql-server-express sql-server-2008-express

我正在使用SQL Server Express 2008,而且我正在进行大量数据插入。我想要有更详细的错误消息,理想情况下打印无法插入的数据。那可能吗?

1 个答案:

答案 0 :(得分:0)

这是可能的,但这可能需要付出很多努力才能做到这一点 - 我记得在一个子系统上工作了几天才能完成所需的一切。我相信这是(少数但仍然太多)的地方之一,在遇到错误时,SQL将背靠背返回两(2)条错误消息,第二条消息模糊不清,并且全部错误处理函数只能访问与第二个lame消息有关的信息,而不能访问真实信息所在的第一个信息。我没有在我面前的代码,但逻辑是这样的:

  • 如果批量插入失败,请使用BULK INSERT上的“errorfile”选项生成错误文件
  • TRY / CATCH批量插入调用,并仔细检查返回的错误号
  • 如果错误是合适的类型,请打开并阅读文件内容以确定哪里出错,并围绕该错误构建错误消息

任何事情都很尴尬,但最终它的效果非常好。只要您插入的驱动器+路径+文件名不超过128个字符(在SQL 2005中,我只是打赌他们在2008年没有修复它。)我不认为批量插入是我最喜欢的命令之一