我知道只要有错误发生,交易就会自动回滚。我从Microsoft上阅读了有关T-SQL的内容,并发现了以下语法:
BEGIN TRANSACTION;
STATEMENT1;
STATEMENT2;
STATEMENT3;
ROLLBACK;
为什么?如果您打算不做任何事情,何必呢?
特别是我在这里找到的:https://docs.microsoft.com/en-us/sql/t-sql/language-elements/rollback-transaction-transact-sql?view=sql-server-2017#examples
但在其他地方也是如此。
答案 0 :(得分:1)
您看到的文档链接仅用于演示目的。它显示了开始事务,尝试插入一些行然后回滚时发生的情况。 然后执行另一条insert语句,并让读者理解事务回滚的工作原理(通过查看仅第二次插入的结果集以及回滚的事务不会影响数据)。
通常以您编写的方式回滚仅用于测试目的,例如在开发时。
答案 1 :(得分:0)
这只是一些SQL,向您展示回滚的作用。 它将始终回滚,而不仅仅是出错。
通常,您只会回退错误,请参见 SQL Server - transactions roll back on error?
了解详情。