Transaction rolled back because it has beenmarked as rollback-only
程序运行出现错误信息,如下图提示
Transaction rolled back because it has been marked as rollback-only
事务已回滚,因为它被标记成了只回滚
发现selectA调用selectB,如果selectB抛出Exception,selectA中捕获Exception但是并不继续向外抛出,最后会出现错误。
纠其原理其实很简单,在selectB返回的时候,transaction被设置为rollback-only了,但是selectA正常消化掉,没有继续向外抛。
那么selectA结束的时候,transaction会执commit操作,但是 transaction已经被设置为 rollback-only了。
所以会出现这个错误。
解决方法:
1- 打开SQL server 数据库
数据库名称 —右键–属性
2-高级–最大文本复制大小 值修改为 -1