Tôi có 2 lệnh và cần cả hai lệnh được thực thi chính xác hoặc không có lệnh nào được thực thi. Vì vậy, tôi nghĩ rằng tôi cần một giao dịch, nhưng tôi không biết làm thế nào để sử dụng nó một cách chính xác.
Có vấn đề gì với đoạn script sau đây?
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
Các INSERT
lệnh được thực thi, nhưng các UPDATE
lệnh có một vấn đề.
Làm thế nào tôi có thể thực hiện điều này để khôi phục cả hai lệnh nếu bất kỳ lệnh nào trong số chúng có lỗi trong thực thi?
BEGIN TRANSACTION [Tran1]
đặt bên trongTRY
? Dù sao - mảnh mã rất đơn giản và thanh lịch.