Поделиться через


ERROR_SEVERITY (Transact-SQL)

Возвращает серьезность ошибки, вызвавшей запуск блока CATCH конструкции TRY...CATCH.

Синтаксис

ERROR_SEVERITY()

Типы возвращаемых данных

int

Возвращаемое значение

При вызове в блоке CATCH возвращает серьезность сообщения об ошибке, вызвавшего запуск блока CATCH.

Возвращает NULL, если вызов происходит вне области блока CATCH.

Замечания

ERROR_SEVERITY может быть вызвана в любом месте в пределах области блока CATCH.

ERROR_SEVERITY возвращает серьезность ошибки независимо от того, сколько раз она выполняется или где именно она выполняется в пределах области блока CATCH. В этом заключается ее отличие от таких функций, как @@ERROR, которые возвращают номер ошибки только в инструкции, следующей за той, которая вызвала ошибку, или в первой инструкции блока CATCH.

Во вложенных блоках CATCH функция ERROR_SEVERITY возвращает серьезность ошибки специфично для области блока CATCH, в котором она представлена. Например, блок CATCH внешней конструкции TRY...CATCH мог содержать вложенную конструкцию TRY...CATCH. В пределах вложенного блока CATCH функция ERROR_SEVERITY возвращает серьезность ошибки, вызвавшей выполнение вложенного блока CATCH. Если функция ERROR_SEVERITY запускается во внешнем блоке CATCH, она возвращает серьезность ошибки, вызвавшей выполнение внешнего блока CATCH.

Примеры

А. Использование ERROR_SEVERITY в блоке CATCH

В следующем примере кода показана инструкция SELECT, которая выдает ошибку деления на нуль. Возвращается серьезность ошибки.

USE AdventureWorks;
GO

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

Б. Использование ERROR_SEVERITY в блоке CATCH с другими инструментами обработки ошибок

В следующем примере кода показана инструкция SELECT, которая выдает ошибку деления на нуль. Вместе с серьезностью возвращаются другие сведения относительно ошибки.

USE AdventureWorks;
GO

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

См. также

Справочник

sys.messages (Transact-SQL)
TRY...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)

Другие ресурсы

Получение сведений об ошибках в языке Transact-SQL
Уровни серьезности ошибок ядра СУБД
Использование конструкции TRY...CATCH в языке Transact-SQL
Использование инструкции RAISERROR
Использование функции @@ERROR

Справка и поддержка

Получение помощи по SQL Server 2005