Try Catch yapısı ile bir SQL kod bloğunda hata olması durumunda farklı işlemlerin yapılmasını sağlar. SQL de Transaction işlemi sırasında hata yakalanırsa işlemlerin geri alınması sağlanabilir. Bunun için TRY – CATCH yapısı kullanmamız gerekmektedir.
1 2 3 4 5 6 |
BEGIN TRY SQL KODLARI END TRY BEGIN CATCH HATA OLUŞTUĞUNDA YPAILACALL İŞLEMLER END CATCH |
Yukarıda ki kod bloğunda BEGIN TRY ile yapılmasını istediğimiz sql ifadelerini yazar ve sonunda END TRY ile bu ifadelerin hata denetiminin bittiğini belirtiriz. Bu blokda hata olması durumunda BEGIN CATCH bloğu devreye girer ve hata olması durumunda yapılacak işlemler yapılır ve END CATCH ile bu işlemler sona erdirilir.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
BEGIN TRY --Hata denetimine başla BEGIN TRANSACTION --Transaction işlemi başlat SAVE TRANSACTION BASLANGIC --Yapılan işlem noktasını BASLANGIC isminde kaydet UPDATE HESAPLAR SET BAKIYE=BAKIYE*0.5 --BAKIYE sütünındaki kayıtları %50 azalt COMMIT --değişiklikleri kaydet END TRY --hata denetimini bitir BEGIN CATCH --hata olması durumunda başla ROLLBACK TRANSACTION BASLANGIC --BASLANGIC savepointinde yapılan işlemleri geri al PRINT 'Güncelleme sırasında hata oluştu. Hata Mesajı: '+ERROR_MESSAGE() --PRINT ile ekrana yaz END CATCH --hata olması durumunda yapılacak işlemlerin sonu SELECT * FROM HESAPLAR --tüm kayıtları getir |
Yukarıda ki işlemler ile bir transaction işlemi başlatılmış ve hatasız olması durumunda COMMIT ile yapılacak işlemler kalıcı hale getirilmiştir. Hata olması durumunda CATCH bloğuan girerek ROLLBACK işlemi başlatılarak yapılan değişikliklerin geri alınması sağlanmıştır Ekran çıktısı aşağıda ki gibi olmaktadır.