05 December 2016

SQL Try – Catch Yapısı

Try – Catch Yapısı bir Try ve bir Catch bloğundan oluşur. Eğer Try bloğunda bir hata olursa kontrol Catch bloğuna geçer. Bir hata yoksa Catch blogu devreye girmez. Bir hata varsa Catch blogunda hata yakalanır. Hata yakalanıp Catch blogunun işletilmesi tamamlandıktan sonra akış bloktan sonraki kodlarla devam eder.

Sadece Try blogu tanımlayıp geçemeyiz. Bir Try blogu tanımladıysak Catch Blogu da tanımlamak zorundayız.

Kullanımı

BEGIN TRY
 --SQL Kodlar
 END TRY
BEGIN CATCH
 --SQL Kodlar
 END CATCH

 

Burada hataların severity seviyesi önemlidir. Severity seviyesi 10’dan büyük hatalar dikkate alınır. Aksi halde Catch blogu çalışmaz.

Örnek:

BEGIN TRY
DECLARE @sayi int
 SET @sayi = '2009.02.05'
 PRINT @sayi
 PRINT ('Try blogu burada biter')
END TRY
 BEGIN CATCH
 PRINT ('Catch blogu devrede. Hata oluştu')
 END CATCH
PRINT ('Sorgu bitti')

 

Örnek:

begin try
 delete Products where ProductID = 1
 end try
 begin catch
 print('Hata oluştu')
 end catch

Not: C#’da kullanılan finally blogu SQL’de kullanılmaz.