1 ЗАДАНИЕ
Транзакция, которая удаляет из таблицы developers людей со специальностью C# и после отменяет действия
SET AUTOCOMMIT=0; START TRANSACTION; SELECT * FROM developers; DELETE FROM developers WHERE SPECIALTY = 'C#'; SELECT * FROM developers; ROLLBACK; SELECT * FROM developers;



Создаем транзакцию, ставим точку сохранения под названием SP1, удаляем из таблицы developers людей с ID 11,12,13 и после этого возвращается на точку сохранения SP1
SET AUTOCOMMIT=0; START TRANSACTION; SAVEPOINT SP1; SELECT * FROM developers; DELETE FROM developers WHERE ID = 11; DELETE FROM developers WHERE ID = 12; DELETE FROM developers WHERE ID = 13; SELECT * FROM developers; ROLLBACK TO SP1; SELECT * FROM developers;



2 ЗАДАНИЕ
Создаем транзакцию, делаем запрос на обновление информации в таблице и где ProductID = 1, то заменяем на QtyAvailbable = 200
SELECT * FROM tblProduct; BEGIN TRANSACTION UPDATE tblProduct set QtyAvailable = 200 WHERE ProductID=1 SELECT * FROM tblProduct; Rollback Transaction SELECT * FROM tblProduct;

Процедура spUpdateAddress которая изменяет адрес на LONDON1 в tblMailinAddress и на LONDON LONDON в tblPhysicalAddress при вызове процедуры. В процедуре используется try catch, чтобы в случае если ты сделал ошибку, то изменения откатились
CREATE PROCEDURE spUpdateAddress as Begin Begin try Begin transaction Update tblMailinAddress set City='LONDON1' WHERE AddressID = 1 and EmployeeNumber = 101 Update tblPhysicalAddress set City='LONDON LONDON' WHERE AddressID = 1 and EmployeeNumber = 101 Commit Transaction print 'Transaction commited' END try Begin catch Rollback transaction Print 'Transaction Rolled Back' END catch END
Вызовы процедуры:
exec spUpdateAddress; select * from tblPhysicalAddress; select * from tbMailinAddress