TASK SQL TRANSACTIONS

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
Scroll to Top