在Catch块中有XACT_STATE()值的问题

我对xact_state函数的错误提供的值有疑问。这是我的代码:

name

最后我收到此错误消息:

在Catch块中有XACT_STATE()值的问题

我的问题是,考虑到第二个插入对于主键定义的违反是不可提交的,为什么此函数的值为1而不是-1。

ilovec_ola 回答:在Catch块中有XACT_STATE()值的问题

答案是

  

违反主键约束

错误不会导致不可提交的交易。该约束阻止插入操作的发生,因此事务实际上处于完全满意的状态。

如果您希望该错误导致不可提交的事务,请在存储过程的开始处添加;

SET XACT_ABORT ON;

这将确保所有错误均导致不可提交的交易

本文链接:https://www.f2er.com/2910403.html

大家都在问