Severity Level (Önem Düzeyi)

Eyl 06, 2013
Severity Levels (Hata Mesajları Önem Düzeyi),  SQL Server’ın kendi iç hatalarını ifade etmek için kullandığı mesajlardır. Her hata mesajının, hata türünü tanımlayan kendine özgü bir hata numarası vardır. Bu sayede Severity Levels kullanıcıya hızlı bir referans sağlar. Hata mesajında hatanın bir açıklaması da yer almaktadır. Severity Levels master(temel) veri tabanında sysmessages(sistem mesajları) tablosunda saklanır. SQL Server içerisine kayıtlı Severity Levels kullanılmasının yanında, kullanıcı bazlı tanımlanan hata mesajları da veritabanına kaydedilebilir. 

Uygulama

sp_addmessage @msgnum='50002', @severity='11', @msgtext='ID 000000 olamaz', @with_log='true' 
kodu hata mesajını veri tabanına ekler. Burada dikkat edilmesi gereken bir kaç nokta vardır: 

  • sp_addmessage hata sistem kodudur.
  • @msgnum=’50002’ ile kullanıcının gireceği hata mesajının 50.000’den büyük olması beklenir. Bu hata mesajının önem düzeyini belirler.
  • @severity=’11’  hatanın düzeyini belirler. (Tablo 1.)
  • @msgtext='ID 000000 olamaz' kodu, hatayı ifade etmek için girilen bir metindir (ID 000000 olamaz gibi).
  • @with_log parametresi, bu hata mesajının Windows Event Log'larında görünüp görünmeyeceğini tayin eder.
  • @with_log=’true’ kodu programın işleyişinde nasıl ele alınacağını belirler.

 


Severity   
 Tanım                                                                        
 01-10 Bilgi mesajıdır, gerçek olmayan hataları gösterebilir. Bağlantı kesilmez.
 11-16 Kullanıcı kaynaklı hatalardır. Girilen bilgilerin konrol edilip tekrar onaylanması gerekir.
 17 Yetersiz Kaynak Hatasıdır. Kullanıcı tarafından veritabanında düzeltilebilir. Bağlantı kesilmez.
 18 SQL Server'la ilgili iç yazılımsal bir hatadır. Ölümcül olmayan hatadır, bağlantı kesilmez.
 19 SQL Server sınırının aşıldığını gösterir ve mevcut olan işlemi sonlandırabilir.
 20 Bir hata ile karşılaşıldığını ve güncel yapılan işlemi etkilediğini belirtir.
 21 SQL Server'da tüm süreçleri etkileyen bir hata ile karşılaşıldığını gösterir, veritabanının zarar görmesi olası değildir.
 22 Bir tablo ya da dizin zarar görmüş anlamına gelir. Sorunun boyutunu belirlemek için SQL Server'ı yeniden başlatılmalıdır. Sorun önbelleği ve disk üzerinde değil ise, yeniden başlatma sorunu giderir. Aksi takdirde, hasar ve gerekli eylem boyutunu belirlemek için DBCC (Database Console Commans-Veritabanı Konsol Komutu) kullanılmalıdır.
 23 Donanım veya yazılım sorunu nedeniyle oluşabilir. Hasarın boyutunu belirlemek için DBCC  CHECKDB ('database adı') (Bu komut Veritabanının yapısal durumunu kontrol etmek amacıyla kullanılır) çalıştırmak gerekir.  Çalışmaya devam etmek için SQL Server yeniden başlatılmalıdır. Bazı durumlarda, veritabanını geri yüklemek gerekebilir.
 24 Donanımsal bir hata olduğunu gösterir. Sistem yöneticisi veritabanını yeniden yüklemek zorunda kalabilir.
 25 Bazı tip sistem hatalarını gösterir.