我知道每当发生错误时,事务都会自动回滚。我从Microsoft阅读了有关T-SQL的内容,并发现了以下语法:
BEGIN TRANSACTION;
STATEMENT1;
STATEMENT2;
STATEMENT3;
ROLLBACK;
为什么?如果你不打算无论如何都不做事,何必呢?
具体来说,我在这里找到了这个:https://learn.microsoft.com/en-us/sql/t-sql/language-elements/rollback-transaction-transact-sql?view=sql-server-2017#examples
但在其他地方也是如此。
您看到的文档链接仅用于演示目的。它显示了当您开始事务时会发生什么,尝试插入一些行,然后将其回滚。然后执行另一个插入语句,读者应该了解事务回滚的工作原理(通过查看结果集,只有第二个插入成功并且回滚的事务不影响数据(。
通常,以您编写的方式回滚仅用于测试目的,例如在开发时。
这只是一些 sql 来向您展示回滚的作用。它将始终回滚,而不仅仅是在错误时回滚。
通常,您只会在错误时回滚,请参阅SQL Server - 事务在出错时回滚?
了解详情。