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

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

Имя точки сохраненияИмя точки сохранения должно быть уникальным в пределах текущей транзакции. Если в транзакции дважды определяется точка сохранения с одним и тем же именем, первая из них теряется. Вот синтаксис инструкции SAVEPOINT, принятый в DB2 9.5. В этом синтаксисе присутствует несколько необязательных предложений, не определенных в стандарте SQL. Предложение UNIQUE указывает на то, что в сеансе больше не может использоваться точка сохранения с таким же именем, т. е. она является уникальной. Попытка определить еще одну точку с таким же именем приведет к ошибке. Если это ключевое слово опущено, при повторном создании точки сохранения с таким же именем предыдущая точка будет уничтожена. Предложение ON ROLLBACK RETAIN CURSORS указывает на то, что система должна оставлять в случае отката явные и неявные курсоры, открытые после определения точки сохранения. Последнее предложение, ON ROLLBACK RETAIN LOCKS, изменяет режим по умолчанию, указывая СУБД не снимать блокировки, установленные после определения точки сохранения подробно описаны явные курсоры. Как в IBM DB2 9.5, таки в Oracle задействована концепция Неявных курсоров — специальных структур манипули —

Рования данными, открываемых практически любой инструкцией select. Обсуждение этой концепции выходит за рамки книги. В IBM DB2 9.5 также существует инструкция RELEASE SAVEPOINT, которая уничтожает все ранее созданные точки сохранения. В Microsoft SQL Server 2008 определен несколько необычный синтаксис инструкции создания точки сохранения. При откате до заданной точки сохранения все изменения в данных аннулируются, однако все блокировки остаются в силе до выполнения инструкции COMMIT или полного отката до начала транзакции. В распределенных транзакциях данная инструкция не поддерживается. В следующем примере проиллюстрировано использование инструкции SAVE TRANSACTION в Microsoft В приведенном примере открывается именованная транзакция trans1, обновляется поле CUST_STATUS_S для клиента с идентификатором 1, а затем создается точка сохранения с именем CUST_1. Затем обновляется состояние другого клиента, после чего выполняется откат транзакции до точки сохранения. В заключение, транзакция подтверждается. В результате только первое обновление остается в силе.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *