第六十八章 SQL命令 SAVEPOINT
在事务中标记一个点。
大纲
SAVEPOINT pointname
参数
pointname- 保存点的名称,指定为标识符。
描述
SAVEPOINT语句标记事务中的一个点。建立保存点使能够执行事务回滚到保存点,撤消在此期间完成的所有工作并释放在此期间获得的所有锁。在长期运行的事务或具有内部控制结构的事务中,通常希望能够回滚事务的一部分,而不撤消在事务期间提交的所有工作。
保存点的建立会递增$TLEVEL事务级别计数器。回滚到保存点会将$TLEVEL事务级别计数器递减到紧接在保存点之前的值。可以在一个事务内建立最多255个保存点。超过这个保存点数量会导致SQLCODE-400致命错误,这是在SQL执行期间捕获的<TRANSACTION LEVEL> 异常。终端提示符将当前事务级别显示为提示符的TLn:前缀,其中n是介于1和255之间的整数,表示当前$TLEVEL计数。
每个保存点都与一个保存点名称相关联,这是一个唯一的标识符。保存点名称不区分大小写。保存点名称可以是分隔的标识符。
- 如果指定的保存点没有点名,或者指定的点名不是有效的标识符或SQL保留字,则会发出运行时
SQLCODE-301错误。 - 如果指定点名称以
“SYS”开头的保存点,则会发出运行时SQLCODE-302错误。这些保存点名称是保留的。
