Un punto de restauración (SAVEPOINT
) es un marcador intermedio declarado por el usuario en el contexto de una transacción. Los puntos de restauración dividen una transacción grande en pequeñas partes.
Si usas puntos de restauración en una transacción larga, tendrás la opción de deshacer los cambios efectuados por la transacción antes de la sentencia actual en la que se encuentre, pero después del punto de restauración establecido. Así, si se produce un error, no es necesario rehacer todas las sentencias de la transacción completa, sino sólo aquellos posteriores al punto de restauración.
Para establecer un punto de restauración se utiliza la sentencia SAVEPOINT
con la sintaxis:
SAVEPOINT nombre_punto_restauración;
La restauración de los cambios hasta ese punto se hará con un comando con el siguiente formato:
ROLLBACK TO SAVEPOINT nombre_punto_restauración;