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

Навигация

⇒ SQL\T-SQL ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

FreeBSD and Nix

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

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

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


T-SQL: Transactions - Транзакции.sql


--Изменение данных в двух таблицах, и откат изменений в случае неудачной транзакции

USE Sbase

SELECT * FROM A WHERE X = 2
SELECT * FROM B WHERE X = 2

BEGIN TRANSACTION
UPDATE A
    SET X = 7
    WHERE X = 2
    IF (@@ERROR <> 0)
        ROLLBACK
UPDATE B
    SET X = 7
    WHERE X = 2
    IF (@@ERROR <> 0)
        ROLLBACK
COMMIT

--Транзакции с метками, откат будет только на указанную метку в случае ошибки

BEGIN TRANSACTION;
UPDATE B
    SET X = 2
    WHERE X = 7;
SAVE TRANSACTION a;

UPDATE A
    SET X = 7
    WHERE X = 2;
SAVE TRANSACTION b;

ROLLBACK TRANSACTION a;

UPDATE B
    SET X = 2
    WHERE X = 7;
SAVE TRANSACTION b;
COMMIT TRANSACTION;

SELECT * FROM A WHERE X = 2
SELECT * FROM B WHERE X = 2

Видео YouTube: http://www.youtube.com/watch?v=W1j0Zw_um5s


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

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

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

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

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





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