SAVEPOINT
Defines or resets the position of a rollback point in the current transaction.
Syntax
SAVEPOINT spVname [UNIQUE] - spname is the savepoint identifier.
 
Usage
The SAVEPOINT instruction declares a new rollback label at the current position
in the lexical order within the current transaction. After defining a savepoint, you can rollback to
the specified point in the transaction by using the ROLLBACK WORK TO SAVEPOINT
instruction.
If the same savepoint
name was used in a prior SAVEPOINT instruction, the
                previous savepoint is destroyed and the name is reused
to flag the new rollback                 position. The optional UNIQUE keyword
specifies that you do not                 want to reuse the same savepoint
name in a subsequent SAVEPOINT                 instruction.
Reusing the same name after a SAVEPOINT                  
      spname UNIQUE will raise an SQL
error.
Example
In this example, a first savepoint is defined before the INSERT
 statement, then reset before the UPDATE statement.
 The ROLLBACK TO SAVEPOINT instruction will cancel the
 UPDATE statement only:
MAIN
  DATABASE stock
  BEGIN WORK
  DELETE FROM items
  SAVEPOINT sp1
  INSERT INTO items VALUES ( ... )
  SAVEPOINT sp1  -- releases previous savepoint named sp1
  UPDATE items SET ...
  ROLLBACK WORK TO SAVEPOINT sp1
  COMMIT WORK
END MAIN