为什么在提交之前没有将更改反映到数据库中时回滚事务?

时间:2017-11-22 10:09:11

标签: sql-server-2005 transactions rollback

我正在研究SQL Server 2005,我发现在未提交事务之前,所做的更改在数据库中不可见。我的问题是,如果在执行提交之前没有进行更改,那么为什么在事务之间发生任何错误时我们回滚事务?即使我不回滚事务,我仍然会看到与事务开始之前数据库相同的状态,那么回滚事务的重点是什么呢?

2 个答案:

答案 0 :(得分:2)

您必须回滚,以便服务器知道您已完成当前事务。如果不这样做,以后的所有更改都不会写入数据库。

答案 1 :(得分:1)

取自this answer

  

如果您既不提交也不回滚事务,则事务将继续无限期地存在。

来自microsoft docs

  

您可以使用ROLLBACK TRANSACTION清除从事务开始或保存点所做的所有数据修改。它还释放了交易所持有的资源。