失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > sqlserver存储过程报错:当前事务无法提交 而且无法支持写入日志文件的操作。请回滚

sqlserver存储过程报错:当前事务无法提交 而且无法支持写入日志文件的操作。请回滚

时间:2019-06-02 14:12:22

相关推荐

sqlserver存储过程报错:当前事务无法提交 而且无法支持写入日志文件的操作。请回滚

请仔细分析这句话 :

是普通的insert语句,还是在存储过程中的insert语句呢?如果是存储过程中的语句,可能是因为:sqlserver存储过程报错:当前事务无法提交,而且无法支持写入日志文件的操作。请回滚该事务。

出现这个错误

代表是存储过程(或者调用的子存储过程)中含有trycatch语句,并且将设置了SETXACT_ABORTON;

SETXACT_ABORTON代表的意思是程序如果遇到错误就回滚。如果在程序中没有trycatch的情况下就直接回滚了。但是如果有trycatch的话,在try块中出现了错误,被catch捕获以后。Xact_state()就会变成-1(Xact_state()是一个系统函数0表示没有活动事务,1表示有活动事务并且可以提交,-1表示有活动事务,但是无法提交换句话说就是只能rollback)

所以在你提交的时候就会报错“当前事务无法提交,而且无法支持写入日志文件的操作。请回滚该事务。”解决:1在catch中对Xact_state()的值进行判断如果为-1的话直接rollback

2如果在子存储过程中存在trycatch的话最好去掉让错误往上一级抛出,由上一级做处理

sqlserver存储过程报错:当前事务无法提交 而且无法支持写入日志文件的操作。请回滚该事务

如果觉得《sqlserver存储过程报错:当前事务无法提交 而且无法支持写入日志文件的操作。请回滚》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。