Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
конечной точке аналитики платформы Аналитики Azure Synapse Analytics
(PDW)
в Microsoft Fabric
Хранилище в Microsoft Fabric
Эта функция возвращает значение серьезности ошибки, в которой возникает ошибка, если эта ошибка вызвала CATCH
выполнение блока TRY...CATCH
конструкции.
Соглашения о синтаксисе Transact-SQL
Синтаксис
ERROR_SEVERITY ( )
Типы возвращаемых данных
int
Возвращаемое значение
При вызове в CATCH
блоке, в котором возникает ошибка, ERROR_SEVERITY
возвращает значение серьезности ошибки, вызвавшей CATCH
запуск блока.
ERROR_SEVERITY
возвращается NULL
, если вызывается вне области CATCH
блока.
Замечания
ERROR_SEVERITY
поддерживает вызовы в любом месте области CATCH
блока.
Функция ERROR_SEVERITY
возвращает значение серьезности ошибки независимо от количества ее выполнений или от места ее вызова в области действия блока CATCH
. Это контрастирует с функцией, например @@ERROR, которая возвращает только номер ошибки в инструкции сразу после того, как эта функция вызывает ошибку.
Функция ERROR_SEVERITY
, как правило, работает во вложенном блоке CATCH
. Функция ERROR_SEVERITY
возвращает значение серьезности ошибки, соответствующее области действия блока CATCH
, который ссылался на данный блок CATCH
. Например, CATCH
блок внешней TRY...CATCH
конструкции может иметь внутреннюю TRY...CATCH
конструкцию. Во внутреннем блоке CATCH
функция ERROR_SEVERITY
возвращает значение серьезности ошибки, вызвавшей внутренний блок CATCH
. Если функция ERROR_SEVERITY
выполняется во внешнем блоке CATCH
, она возвращает значение серьезности ошибки, вызвавшей внешний блок CATCH
.
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
А. Использование ERROR_SEVERITY в блоке CATCH
В приведенном ниже примере показана хранимая процедура, которая создает ошибку деления на 0. Функция ERROR_SEVERITY
возвращает значение серьезности этой ошибки.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1 / 0;
END TRY
BEGIN CATCH
SELECT ERROR_SEVERITY() AS ErrorSeverity;
END CATCH
GO
Вот результирующий набор.
-----------
(0 row(s) affected)
ErrorSeverity
-------------
16
(1 row(s) affected)
В. Использование ERROR_SEVERITY в блоке CATCH с другими средствами обработки ошибок
В приведенном ниже примере показана инструкция SELECT
, вызывающая ошибку деления на ноль. Хранимая процедура возвращает сведения об этой ошибке.
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
Вот результирующий набор.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ----------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Связанный контент
- sys.messages
- Серьезность ошибок ядра СУБД
- ПОПЫТКА... CATCH (Transact-SQL)
- ERROR_LINE (Transact-SQL)
- ERROR_MESSAGE (Transact-SQL)
- ERROR_NUMBER (Transact-SQL)
- ERROR_PROCEDURE (Transact-SQL)
- ERROR_STATE (Transact-SQL)
- RAISERROR (Transact-SQL)
- @@ERROR (Transact-SQL)
- Справочник по ошибкам и событиям (ядро СУБД)