Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в 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)
- Справочник по ошибкам и событиям (ядро СУБД)