我正在研究SQL Server 2005,我发现在未提交事务之前,所做的更改在数据库中不可见。我的问题是,如果在执行提交之前没有进行更改,那么为什么在事务之间发生任何错误时我们回滚事务?即使我不回滚事务,我仍然会看到与事务开始之前数据库相同的状态,那么回滚事务的重点是什么呢?
答案 0 :(得分:2)
您必须回滚,以便服务器知道您已完成当前事务。如果不这样做,以后的所有更改都不会写入数据库。
答案 1 :(得分:1)
取自this answer:
如果您既不提交也不回滚事务,则事务将继续无限期地存在。
您可以使用ROLLBACK TRANSACTION清除从事务开始或保存点所做的所有数据修改。它还释放了交易所持有的资源。