如何在SQL Server中通过BEGIN TRANSACTION语句实现带事务控制的存储过程?
- 内容介绍
- 相关推荐
本文共计1018个文字,预计阅读时间需要5分钟。
直接回答:
为什么 EXEC 后事务没回滚?——XACT_ABORT 缺失是常见原因
很多开发者写完带 BEGIN TRANSACTION 的存储过程,测试时发现某条语句报错(比如主键冲突、类型转换失败),但前面已执行的 INSERT 却没被撤销。根本原因是:SQL Server 默认不因运行时错误自动回滚整个事务。
本文共计1018个文字,预计阅读时间需要5分钟。
直接回答:
为什么 EXEC 后事务没回滚?——XACT_ABORT 缺失是常见原因
很多开发者写完带 BEGIN TRANSACTION 的存储过程,测试时发现某条语句报错(比如主键冲突、类型转换失败),但前面已执行的 INSERT 却没被撤销。根本原因是:SQL Server 默认不因运行时错误自动回滚整个事务。

