Транзакция — это последовательное выполнение команд, которые должны выполниться или вместе, или не выполниться вообще.
Синтаксис
--начало транзакции BEGIN TRANSACTION --инструкции --если ошибка IF(@@ERROR<>0) --откат транзакции ROLLBACK TRANSACTION --конец транзакции COMMIT TRANSACTION
Script.sql
--выбор базы USE zzz GO --создание таблицы CREATE TABLE Book ( IDBook INT NOT NULL PRIMARY KEY IDENTITY(1, 1), Name NVARCHAR(50) NOT NULL, Amount INT NOT NULL, Price MONEY NOT NULL ) --вставляем данные INSERT INTO Book(Name, Amount, Price) VALUES ('Букварь', 20, 20.25), ('География', 30, 30.35), ('Математика', 40, 40.45) GO --вывод данных SELECT Name, Amount, Price FROM Book --начало транзакции BEGIN TRANSACTION UPDATE Book SET Amount = 50 WHERE Name = 'Математика' --если ошибка IF(@@ERROR<>0) --откат транзакции ROLLBACK TRANSACTION --конец транзакции COMMIT TRANSACTION --вывод данных SELECT Name, Amount, Price FROM Book
--выбор базы USE zzz GO --создание таблицы CREATE TABLE Book ( IDBook INT NOT NULL PRIMARY KEY IDENTITY(1, 1), Name NVARCHAR(50) NOT NULL, Amount INT NOT NULL, Price MONEY NOT NULL ) --вставляем данные INSERT INTO Book(Name, Amount, Price) VALUES ('Букварь', 20, 20.25), ('География', 30, 30.35), ('Математика', 40, 40.45) GO --вывод данных SELECT Name, Amount, Price FROM Book --начало транзакции BEGIN TRANSACTION UPDATE Book SET Amount = 50 WHERE Name = 'Математика' --если ошибка IF(@@ERROR<>0) --откат транзакции ROLLBACK TRANSACTION --конец транзакции COMMIT TRANSACTION --вывод данных SELECT Name, Amount, Price FROM Book