Mam 2 polecenia i trzeba je poprawnie wykonać lub żadna z nich nie zostanie wykonana. Więc myślę, że potrzebuję Transakcji, ale nie wiem, jak jej używać poprawnie.Prawidłowe korzystanie z transakcji w SQL Server 2008
Na czym polega problem z następującym skryptem?
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
Komenda insert
stracony ale komenda update
ma problem. Jak mogę to zaimplementować, aby wycofać oba polecenia, jeśli któryś z nich ma błąd w wykonaniu?
Jest to bardziej właściwe odpowiedzi. –
Dobra odpowiedź. Jak napisano, spowoduje to zablokowanie komunikatu o błędzie. Dodaj "PRINT ERROR_MESSAGE()" po wycofaniu, aby go wyświetlić. – atheaos
Czy nie należy "BEGIN TRANSACTION [Tran1]" umieścić w środku "TRY"? W każdym razie - bardzo prosty i elegancki kawałek kodu. –