Rollback, Yapılan işlemleri geri alır. Örneğin bir tablodaki verileri DELETE, UPDATE, INSERT gibi işlemler yapılırken ROLLBACK ile işlemi geri alır. Peki bu bize ne fayda sağlayacak? Bazı tablolarda Triggers bulunur DDL veri işlemi yaparken hata alınabilir bu sefer hangileri hata aldığını hangileri işlem yapıldığını ayırt etmek zor olabiliyor.
Yapılan işlemi geri alma
BEGIN TRANSACTION --İşlem bu satırdan itibaren başlangıcı bildiriyoruz.
DELETE FROM [dbo].[MUSTERI] WHERE AD LIKE '%Test' --Sonu test ile bitenleri silecek
ROLLBACK TRANSACTION --İşlemi bu satırdan itibaren geri alınmasını
bildiriyoruz.
İşlem sırasında bir hata çıkmadığını anlıyorum. Ben o zaman sorgumu gerçek anlamda çalıştırabilirim yani rollback olmadan.
Çoklu işlem yapılırken hata varsa işlemi geri alma
Çoklu işlemler yapılırken işlem sırasında bir hata varsa başarılı olan işlemlerde dahil işlemleri geri almasını sağlar. Eğer bir hata yoksa commit transaction gerçekleşerek işlemler tamamlanmış olur.
BEGIN TRANSACTION
BEGIN TRY
BEGIN
/*Yapılacak işlem bloğunuz*/
END
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
NOT: ROLLBACK TRANSACTION Kullanılmadan önceden yapılmış işlemleri geri alınamaz.
Dilerim yardımcı olabilmişimdir 🙂 İyi günler!