我有 10 个脚本,每个脚本都包含它自己的提交语句。我正在使用我的工具同时执行所有脚本,该工具将请求数据库连接并读取我们的脚本并在我们的数据库中执行。
我需要在所有脚本中保留所有提交语句,如果任何语句在任何脚本中失败,它应该回滚所有以前的语句。
只需删除您提交的语句.. 和
SET AUTOCOMMIT OFF;
WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
{script 1}
{script 2}
{script 3}
{script 4}
.
.
.
{script 10}
COMMIT;
DDL 将在成功时隐式提交。我们不会为 DDL 发出提交。您应该有一个 On failure 脚本以进行手动回滚。
例如:您创建两个表然后回滚
WHENEVER SQLERROR CONTINUE;
DROP TABLE1;
DROP TABLE2;