假设我正在对表进行插入或更新。因此,在BEGIN CATCH/END CATCH中,我可以将变量定义为ERROR_MESSAGE()并获取我的错误消息:
Cannot insert the value NULL into column 'columnname', table 'Table'; column does not allow nulls. INSERT fails.
我有什么办法可以说出问题记录的主键,还是可以识别出哪一行实际失败了?我在失败时回滚了事务,所以好像我不能查看“最后一个”记录来查看下一个有问题的记录。
最佳答案
由于您并非一次真正处理一张记录,因此AFAIK不可能实现。
当然,对于插入,还没有分配主键。如果您确实需要详细的详细信息,我可以提供的最佳建议是一次插入/更新一行,这样您就可以确定哪一行引发了错误。
关于tsql - 如何在SQL Server中失败的插入/更新中返回行信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1027677/