Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Инструкция RELEASE SAVEPOINT

Инструкция RELEASE SAVEPOINT удаляет одну или несколько ранее созданных в текущей транзакции точек сохранения.


Синтаксис SQL 2003

RELEASE SAVEPOINT имя_точки_сохранения.


Ключевые слова

имя точки сохранения

Представляет собой именованную точку сохранения (или описание цели), которая была создана в транзакции ранее, при помощи инструкции SAVEPOINT. Имя точки сохранения должно быть уникальным в пределах транзакции.


Общие правила

Инструкция RELEASE SA VEPOINTиспользуется в транзакции для удаления указанной точки сохранения. Все точки сохранения, которые были созданы после указанной, также будут удалены.

Для иллюстрации работы с точками сохранения в следующем коде мы вставим несколько записей, создадим точку сохранения с именем first_savepoint, а затем удалим ее.

INSERT authors (au_id, au_lname, au_fname, contract)
VALUES (‘111-11-1111’, ‘Rabbit’, ‘Jessica’, 1);

SAVEPOINT first_savepoint;

INSERT authors (au_id, au_lname, au_fname, contract)
VALUES (‘277-27-2777’, ‘Fudd’, ‘E.P.’, 1);

INSERT authors (au_id, au_lname, au_fname, contract)
VALUES (‘366-36-3636’, ‘Duck’, ‘P.J.’, 1);

RELEASE SAVEPOINT first_savepoint;

COMMIT;

В этом примере удаляется точка сохранения firstsavepoint, после чего в таблицу authors вставляются все три записи.

В следующем примере мы выполним те же действия, но используем больше точек сохранения.

INSERT authors (au_id, au_lname, au_fname, contract)
VALUES (‘111-11-1111’, ‘Rabbit’, ‘Jessica’, 1);

SAVEPOINT first_savepoint;

INSERT authors (au_id, au_lname, au_fname, contract)
VALUES (‘277-27-2777’, ‘Fudd’, ‘E.P.’, 1);

SAVEPOINT second_savepoint;

INSERT authors (au_id, au_lname, au_fname, contract)
ALUES (‘366-36-3636’, ‘Duck’, ‘P.J.’, 1);

SAVEPOINT third_savepoint;

RELEASE SAVEPOINT second_savepoint;

COMMIT;

В этом примере при удалении точки сохранения second_savepoint система в действительности удаляет secondsavepoint и thirdsavepoint, поскольку точка thirdsavepoint была создана после secondjsavepoint.

После удаления точки сохранения ее имя можно использовать снова.


Советы и хитрости программирования

Подача инструкции COMMIT или инструкции полного отката ROLLBACK приведет к удалению всех открытых точек сохранения транзакции. Подача инструкции ROLLBACK ТО SAVEPOINT возвращает транзакцию к тому состоянию, в котором она находилась в указанной точке. Поэтому все точки сохранения, объявленные после этой точки, становятся недействительными.


DBS

Платформа DB2 полностью поддерживает инструкцию RELEASE SAVEPOINT, а также дополнительное ключевое слово.

RELEASE [TO] SAVEPOINT имя.точки, сохранения

Где:

ТО

Дополнительное ключевое слово, не несущее никаких функций.


MySQL

Не поддерживается.


Oracle

Не поддерживается.


PostgreSQL

Не поддерживается.


SQL Server

Не поддерживается.

Источник