Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Явные транзакции
Явные транзакции требуют, чтобы пользователь указал начало и конец транзакции, используя следующие команды:
Ø Начало транзакции определяется командой
BEGIN TRAN [SACTION] [имя_транзакции | @имя_переменной_транзакции ]
[WITH MARK [ 'описание_транзакции' ]]
При этом в журнале транзакций фиксируется момент начала транзакции и первоначальные значения данных;
Ø Конец транзакции. Если в теле транзакции не было ошибок, то следующая команда предписывает серверу зафиксировать все изменения, сделанные в транзакции, после чего в журнале транзакций помечается, что изменения зафиксированы и транзакция завершена:
COMMIT [TRANSACTION] [имя_транзакции | @имя_переменной_транзакции]
Ø Внутри транзакции можно создавать точки сохранения. При выполнении следующей команды СУБД сохраняет состояние БД в текущей точке и присваивает этому состоянию имя точки сохранения:
SAVE TRAN [ SACTION ][имя_точки_сохранения | @имя_переменной_точки_сохранения]
Ø Прерывание транзакции. Когда сервер встречает приведенную ниже команду, происходит откат транзакции, восстанавливается первоначальное состояние системы и в журнале транзакций отмечается, что транзакция была отменена.
ROLLBACK [TRAN [ SACTION ]] [имя_транзакции | @имя_
переменной_транзакции | имя_точки__сохранеия | @имя_переменной_точки_сохранения]
Эта команда либо отменяет все изменения, сделанные в БД после оператора BEGIN TRANSACTION, либо отменяет изменения, сделанные в БД после точки сохранения, возвращая транзакцию к месту, где был выполнен оператор SAVE TRANSACTION.
Некоторые полезные функции:
Функция @@TRANCOUNT возвращает количество активных транзакций.
Функция @@NESTLEVEL возвращает уровень вложенности транзакции.
Пример 3. Использование точек сохранения.
Пусть применительно к таблице Товар выполняются следующие команды:
Дата публикования: 2014-12-08; Прочитано: 681 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!