使用 SAVEPOINT 语句来声明在当前的 SQL 事务之内新的保存点的名称,并设置在该事务之内
SQL 语句的词典顺序之内的新保存点的位置。
用法
您可在 SQL 事务中使用 SAVEPOINT 语句以 DB-Access 和 SPL、C 和 Java™ 例程来支持错误
处理。您可定义保存点来将单个复杂的事务分隔成它的组件 SQL 语句的较小的逻辑子集。在那个
事务之内,可更有效地回滚跟在每一保存点之后的语句的子集,比起如果您在多个事务中已使用了
多个 COMMIT WORK 和 ROLLBACK WORK 语句的话。
SAVEPOINT 语句在当前的事务之内按照语句的词典顺序在当前的位置设置指定的保存点。在
SAVEPOINT 语句执行成功之后,引用此保存点的后续的 ROLLBACK TO SAVEPOINT 语句可取
消对数据库任何未提交的更改,这些更改是跟在新的保存点之后但在 ROLLBACK TO SAVEPOINT
语句之前的。
如果在同一事务内的现有的保存点与 SAVEPOINT 语句指定的名称相同,则销毁现有的保存点,除
非下列条件之一为真:
在不同的保存点级别设置了现有的保存点。
以 UNIQUE 关键字选项声明了现有的保存点名称。在此情况下 SAVEPOINT 语句失败并
报错,除非在不同的保存点级别设置了现有的 UNIQUE 保存点。
销毁一保存点来为另一保存点重用它的名称,与释放该保存点不同。重用保存点名称仅销毁一个保
存点。以 RELEASE SAVEPOINT 语句释放保存点会释放指定的保存点以及后续已设置了的所有保
存点。
UNIQUE 选项
此可选的关键字指定应用程序不要打算在另一 SAVEPOINT 语句中重用此保存点的名称,在此保
存点在当前的保存点级别之内是活动的时候。
如果保存点已存在,是在当前的保存点界别之内以相同的名称和以 UNIQUE 关键字设置了的,则
SAVEPOINT 语句失败并报错,且不销毁现有的保存点。