Aracılığıyla paylaş


ERROR_SEVERITY (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Bu işlev, bir yapı bloğunun yürütülmesine neden olursa hatanın oluştuğu hatanın CATCHTRY...CATCH önem derecesi değerini döndürür.

Transact-SQL söz dizimi kuralları

Sözdizimi

ERROR_SEVERITY ( )

Dönüş türleri

Int

Dönüş değeri

Bir hatanın oluştuğu bir CATCH blokta çağrıldığında, ERROR_SEVERITY bloğun çalışmasına neden olan hatanın CATCH önem derecesi değerini döndürür.

ERROR_SEVERITYbir bloğun NULL kapsamı dışında çağrılırsa döndürürCATCH.

Açıklamalar

ERROR_SEVERITY blok kapsamındaki her yerde çağrıları CATCH destekler.

ERROR_SEVERITY , kaç kez çalıştığına veya blok kapsamında nerede çalıştığına bakılmaksızın hatanın CATCH hata önem derecesi değerini döndürür. Bu, @@ERROR gibi bir işlevle karşıttır ve yalnızca hataya neden olandan hemen sonra deyiminde bir hata numarası döndürür.

ERROR_SEVERITY genellikle iç içe yerleştirilmiş CATCH bir blokta çalışır. ERROR_SEVERITY, bu bloğa başvuran CATCH bloğun kapsamına CATCH özgü hata önem derecesi değerini döndürür. Örneğin, CATCH dış TRY...CATCH yapı bloğu bir iç TRY...CATCH yapıya sahip olabilir. Bu iç bloğun içinde CATCH , ERROR_SEVERITYCATCH bloğu çağıran hatanın önem derecesi değerini döndürür. Dış ERROR_SEVERITY blokta çalıştırılırsaCATCH, bu dış CATCH bloğu çağıran hatanın hata önem derecesi değerini döndürür.

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

A. CATCH bloğunda ERROR_SEVERITY kullanma

Bu örnekte, sıfıra bölme hatası oluşturan saklı bir yordam gösterilmektedir. ERROR_SEVERITY bu hatanın önem derecesi değerini döndürür.

BEGIN TRY
-- Generate a divide-by-zero error.
    SELECT 1 / 0;
END TRY
BEGIN CATCH
    SELECT ERROR_SEVERITY() AS ErrorSeverity;
END CATCH
GO

Sonuç kümesi aşağıdadır.

-----------

(0 row(s) affected)

ErrorSeverity
-------------
16

(1 row(s) affected)

B. Catch bloğunda diğer hata işleme araçlarıyla ERROR_SEVERITY kullanma

Bu örnekte sıfıra bölme hatası oluşturan bir deyim gösterilmektedir SELECT . Saklı yordam hatayla ilgili bilgileri döndürür.

BEGIN TRY
-- Generate a divide-by-zero error.
    SELECT 1 / 0;
END TRY
BEGIN CATCH
    SELECT ERROR_NUMBER() AS ErrorNumber,
           ERROR_SEVERITY() AS ErrorSeverity,
           ERROR_STATE() AS ErrorState,
           ERROR_PROCEDURE() AS ErrorProcedure,
           ERROR_LINE() AS ErrorLine,
           ERROR_MESSAGE() AS ErrorMessage;
END CATCH
GO

Sonuç kümesi aşağıdadır.

-----------

(0 row(s) affected)

ErrorNumber ErrorSeverity ErrorState  ErrorProcedure  ErrorLine   ErrorMessage
----------- ------------- ----------- --------------- ----------- ----------------------------------
8134        16            1           NULL            4           Divide by zero error encountered.

(1 row(s) affected)