Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ SQL\T-SQL ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

FreeBSD and Nix

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


T-SQL 2012: Транзакции и перехват исключений


--Свойства транзакций:

--Атомарность - Либо все операции транзакции завершаются успешно, либо ни одна операция из них не выполняется.

--Согласованность - Ресурсы, вовлеченные транзакцией, остаются в согласованном состоянии в начале транзакции и при ее окончании. 
--Транзакция не должна нарушать ограничения, накладываемые требованием целостности.

--Изолированность - Операции транзакции являются изолированными для остальных операций. 
--Внешние по отношению к транзакции операции ничего не занют о данных внутри самой транзакции.

--Устойчивость - После успешного завершении транзакции ее результаты фиксируются, в случае прерывания или сбоя - откатываются.

USE tsql;

--Задаем начальные данные
UPDATE data SET data = 1;

--Начинаем транзакцию
BEGIN TRAN;

UPDATE data
    SET data = 2;

--Первая точка сохранения
SAVE TRAN S2;

UPDATE data
    SET data = 3;

--Вторая точка сохранения
SAVE TRAN S3;

--Откатываемся к первой точке сохранения
ROLLBACK TRAN S2;

--Подтверждаем окончание транзакции
COMMIT TRAN;

SELECT * FROM data;


--Пример транзакции с откатом в случае ошибки
BEGIN TRAN;

UPDATE data
    SET data = 3;
SAVE TRAN S;

BEGIN TRY
UPDATE data
    SET data = 4;

--Выдаст ошибку
UPDATE data
    SET data = 999999999999;
END TRY

--Откатываемся к сохраненной точке и фиксируем транзакцию
BEGIN CATCH
    SELECT ERROR_NUMBER() AS errNum,
            ERROR_MESSAGE() AS errMess,
            ERROR_LINE() AS errLine;
    ROLLBACK TRAN S;
    COMMIT TRAN;
END CATCH

SELECT * FROM data;


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект