У мене є 2 команди, і потрібно, щоб обидві вони були виконані правильно або жодна з них не виконувалася. Тому я думаю, що мені потрібна транзакція, але я не знаю, як правильно її використовувати.
У чому проблема із наступним сценарієм?
BEGIN TRANSACTION [Tran1]
INSERT INTO [Test].[dbo].[T1]
([Title], [AVG])
VALUES ('Tidd130', 130), ('Tidd230', 230)
UPDATE [Test].[dbo].[T1]
SET [Title] = N'az2' ,[AVG] = 1
WHERE [dbo].[T1].[Title] = N'az'
COMMIT TRANSACTION [Tran1]
GO
INSERT
Команда виконується, але UPDATE
команда має проблему.
Як я можу реалізувати це для відкату обох команд, якщо будь-яка з них має помилку у виконанні?
BEGIN TRANSACTION [Tran1]
слід розміщувати всерединіTRY
? У будь-якому випадку - дуже простий і елегантний фрагмент коду.