İngilizce dilinde oku

Aracılığıyla paylaş


Veritabanı Altyapısı Hatalarını Anlama

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Microsoft FabricWarehouse'da SQL analiz uç noktası

Microsoft SQL Server Veritabanı Altyapısı tarafından oluşturulan hatalar aşağıdaki tabloda açıklanan özniteliklere sahiptir.

Öznitelik Açıklama
Hata numarası Her hata iletisinin benzersiz bir hata numarası vardır.
Hata iletisi dizesi Hata iletisi, hatanın nedeni hakkında tanılama bilgileri içerir. Birçok hata iletisinde, hatayı oluşturan nesnenin adı gibi bilgilerin eklendiği değiştirme değişkenleri bulunur.
Şiddet Önem derecesi hatanın ne kadar ciddi olduğunu gösterir. 1 veya 2 gibi düşük önem derecelerine sahip hatalar bilgi iletileri veya düşük düzeyli uyarılardır. Yüksek önem derecesinde hatalar, en kısa sürede çözülmesi gereken sorunları gösterir. Önem dereceleri hakkında daha fazla bilgi için bkz. Veritabanı Altyapısı Hata Önem Dereceleri.
Devlet Bazı hata iletileri, Veritabanı Altyapısı kodunun birden çok noktasında oluşturulabilir. Örneğin, birkaç farklı koşul için 1105 hatası oluşturulabilir. Hata oluşturan her belirli koşul benzersiz bir durum kodu atar.

Microsoft Bilgi Bankası gibi bilinen sorunlar hakkında bilgi içeren veritabanlarını görüntülerken, kaydedilen sorunun karşılaştığınız hatayla aynı olup olmadığını belirlemek için durum numarasını kullanabilirsiniz. Örneğin, bilgi bankası makalesinde 2 olan bir 1105 hatası açıklanıyorsa ve aldığınız 1105 hata iletisinin durumu 3 ise, hatanın büyük olasılıkla makalede bildirilenden farklı bir nedeni vardır.

Microsoft destek mühendisi, kaynak kodunda bu hata kodunun yükseltildiği konumu bulmak için hatadan alınan durum kodunu da kullanabilir. Bu bilgiler, sorunun nasıl tanılanabileceği hakkında ek fikirler sağlayabilir.
Prosedür adı Hatanın oluştuğu saklı yordamın veya tetikleyicinin adıdır.
Satır numarası Bir toplu işlem, saklı yordam, tetikleyici veya işlevde hangi deyimin hatayı ürettiğini gösterir.

Veritabanı Altyapısı örneğindeki tüm sistem ve kullanıcı tanımlı hata iletileri, sys.messages katalog görünümünde yer alır. Bir uygulamaya kullanıcı tanımlı hatalar döndürmek için RAISERROR deyimini kullanabilirsiniz.

Microsoft .NET Framework SQLClient ad alanı, ActiveX Veri Nesneleri (ADO), OLE DB ve Açık Veritabanı Bağlantısı (ODBC) gibi tüm veritabanı API'leri temel hata özniteliklerini bildirir. Bu bilgiler hata numarasını ve ileti dizesini içerir. Ancak, tüm API'ler diğer tüm hata özniteliklerini raporlamaz.

TRY...CATCH yapısındaki TRY bloğu kapsamında oluşan bir hata hakkında bilgi, ilişkili CATCH bloğu kapsamında ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY ve ERROR_STATE gibi işlevler kullanılarak Transact-SQL kodda elde edilebilir. Daha fazla bilgi için bkz. TRY... CATCH (Transact-SQL).

Örnekler

Aşağıdaki örnek, veritabanı altyapısında İngilizce metin (1033) bulunan tüm sistem ve kullanıcı tanımlı hata iletilerinin listesini döndürmek için sys.messages katalog görünümünü sorgular.

SELECT  
    message_id,  
    language_id,  
    severity,  
    is_event_logged,  
    text  
  FROM sys.messages  
  WHERE language_id = 1033;  

Daha fazla bilgi için bkz. sys.messages (Transact-SQL).

Ayrıca Bkz.

sys.messages (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
DENEYIN... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
HATA_DURUMU (Transact-SQL)