Saya punya 2 perintah dan perlu keduanya dieksekusi dengan benar atau tidak ada yang dieksekusi. Jadi saya pikir saya perlu transaksi, tetapi saya tidak tahu bagaimana menggunakannya dengan benar.
Apa masalah dengan skrip berikut?
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
The INSERT
perintah dijalankan, tetapi UPDATE
perintah memiliki masalah.
Bagaimana saya bisa menerapkan ini untuk mengembalikan kedua perintah jika salah satu dari mereka memiliki kesalahan dalam eksekusi?
BEGIN TRANSACTION [Tran1]
seharusnya ditempatkan di dalamTRY
? Pokoknya - sepotong kode yang sangat sederhana dan elegan.