tsql - 如何在SQL Server中失败的插入/更新中返回行信息?

标签 tsql error-handling

假设我正在对表进行插入或更新。因此,在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/

相关文章:

sql - SQL : why are they called window functions? 中的窗口函数

sql-server - 使用 PROBE 代替索引查找进行索引扫描

php - 异常Eventlistener无法捕获RabbitMQ使用者的异常

c# - Entity Framework查询在23个子查询后失败,需要添加更多

sql - 在 SQL Server 中按用户获取表中的第一个和最后一个条目

sql - EXECUTE @Var 字符限制 SQL Server 2008 R2

.net - 如何将全局异常处理添加到加载项dll?

wordpress - fatal error : Cannot make non static method

scala - Scala错误建模

python - 覆盖Django RestFramework CreateModelMixin序列化器错误消息