Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения:SQL Server
При возникновении ошибки ядро СУБД SQL Server серьезность ошибки указывает тип проблемы, возникшую в SQL Server.
Уровни серьезности
В следующей таблице перечислены уровни серьезности ошибок, вызванных ядро СУБД SQL Server.
| Уровень серьезности | Description |
|---|---|
| 0–9 | Указывает информационные сообщения, возвращающие сведения о состоянии или сообщающие об ошибках, которые не являются серьезными. Ядро СУБД не вызывает системные ошибки с серьезностью от 0 до 9. |
| 10 | Указывает информационные сообщения, возвращающие сведения о состоянии или сообщающие об ошибках, которые не являются серьезными. По соображениям совместимости ядро СУБД преобразует уровень серьезности 10 в значение 0 перед возвратом сведений об ошибке в вызывающее приложение. |
| 11-16 | Ошибки, которые могут исправляться пользователем. |
| 11 | Указывает, что данный объект или сущность не существует. |
| 12 | Особая серьезность запросов, которые не используют блокировку из-за специальных подсказок запросов. В некоторых случаях операции чтения, выполняемые этими операторами, могут привести к несогласованным данным, так как блокировки не принимаются для обеспечения согласованности. |
| 13 | Указывает ошибки взаимоблокировки транзакций. |
| 14 | Указывает ошибки, связанные с безопасностью, например запрет на разрешение. |
| 15 | Указывает синтаксические ошибки в команде Transact-SQL. |
| 16 | Обозначает общие ошибки, которые могут исправляться пользователем. |
| 17-19 | Укажите ошибки программного обеспечения, которые не могут быть исправлены пользователем. Сообщите администратору системы о данной проблеме. |
| 17 | Указывает, что инструкция вызвала нехватку ресурсов SQL Server (например, памяти, блокировки или дискового пространства для базы данных) или превышение определенного ограничения, заданного системным администратором. |
| 18 | Указывает на проблему в программном обеспечении ядра СУБД, но инструкция завершается и сохраняется подключение к экземпляру ядра СУБД. Необходимо сообщить системному администратору о каждом случае возникновения ошибки со степенью серьезности 18. |
| 19 | Указывает, что превышено неконфигурируемое ограничение ядро СУБД и завершен текущий пакетный процесс. Сообщения об ошибке со степенью серьезности 19 и выше останавливают выполнение текущего пакета. Ошибки со степенью серьезности 19 происходят редко и должны устраняться системным администратором или основной службой технической поддержки. При возникновении ошибок со степенью серьезности 19 обратитесь к системному администратору. Сообщения об ошибках со степенью серьезности от 19 до 25 записываются в журнал ошибок. |
| 20–24 | Укажите системные проблемы и являются неустранимыми ошибками, что означает, что задача ядра СУБД, выполняющая инструкцию или пакет, больше не выполняется. Задача записывает сведения о том, что произошло, и затем прекращает работу. В большинстве случаев подключение приложения к экземпляру ядра СУБД также может завершиться. Если это происходит, в зависимости от проблемы, приложение может не иметь возможности повторно подключиться. Сообщения об ошибках в этом диапазоне могут повлиять на все процессы, обращающиеся к данным в базе данных, и могут указывать на то, что база данных или объект повреждена. Сообщения об ошибках со степенью серьезности от 19 до 24 записываются в журнал ошибок. |
| 20 | Указывает, что инструкция столкнулась с проблемой. Так как проблема повлияла только на текущую задачу, скорее всего, сама база данных повреждена. |
| 21 | Указывает, что возникла проблема, которая влияет на все задачи в текущей базе данных, но скорее всего, сама база данных повреждена. |
| 22 | Обозначает, что таблица или индекс, указанные в сообщении, повреждены из-за программной проблемы или проблемы оборудования. Ошибки степени серьезности 22 происходят редко. При возникновении одного из них выполните команду DBCC CHECKDB , чтобы определить, повреждены ли другие объекты в базе данных. Проблема может быть ограничена только буферным кэшем и не затрагивать сам диск. При этом перезапуск экземпляра ядро СУБД исправляет проблему. Чтобы продолжить работу, необходимо повторно подключиться к экземпляру ядра СУБД. В противном случае используйте DBCC для восстановления проблемы. В некоторых случаях может потребоваться восстановить базу данных.Если перезапуск экземпляра ядра СУБД не исправляет проблему, проблема находится на диске. Иногда уничтожение объекта, указанного в сообщении об ошибке, решает проблему. Например, если сообщение сообщает, что экземпляр ядро СУБД нашел строку длиной 0 в некластеризованном индексе, удалите индекс и перестроите его. |
| 23 | Обозначает, что из-за проблем в оборудовании или программном обеспечении целостность всей базы данных находится под вопросом. Ошибки степени серьезности 23 происходят редко. Если это происходит, выполните команду DBCC CHECKDB , чтобы определить степень ущерба. Проблема может быть ограничена только кэшем, и не затрагивать сам диск. При этом перезапуск экземпляра ядро СУБД исправляет проблему. Чтобы продолжить работу, необходимо повторно подключиться к экземпляру ядра СУБД. В противном случае используйте DBCC для восстановления проблемы. В некоторых случаях может потребоваться восстановить базу данных. |
| 24 | Обозначает неисправность носителя. Системный администратор может потребоваться восстановить базу данных. Возможно, вам также потребуется вызвать поставщика оборудования. |
Серьезность сообщения об ошибке, определяемого пользователем
Вы можете добавлять sp_addmessage пользовательские сообщения об ошибках с серьезностью от 1 до 25 в sys.messages представление каталога. Эти пользовательские сообщения об ошибках можно использовать.RAISERROR Дополнительные сведения см. в sp_addmessage.
RAISERROR можно использовать для создания пользовательских сообщений об ошибках с серьезностью от 1 до 25.
RAISERROR Может ссылаться на определяемое пользователем сообщение об ошибке sys.messages , хранящееся в представлении каталога, или динамически создавать сообщение. При RAISERROR использовании определяемого пользователем сообщения sys.messages об ошибке при возникновении ошибки серьезность, указанная RAISERROR путем переопределения серьезности, указанной в sys.messages. Дополнительные сведения см. в разделе RAISERROR.
Серьезность ошибок и TRY... ЛОВИТЬ
Конструкция TRY...CATCH перехватывает все ошибки выполнения с серьезностью больше 10, которые не завершают подключение к базе данных.
Ошибки с серьезностью от 0 до 10 являются информационными сообщениями и не вызывают переход от CATCH блока TRY...CATCH конструкции.
Ошибки, которые завершают подключение к базе данных, как правило, с серьезностью от 20 до 25, не обрабатываются CATCH блоком, так как выполнение прерывается при завершении подключения.
Дополнительные сведения см. в разделе TRY... CATCH.
Получение серьезности ошибок
Системная ERROR_SEVERITY функция может использоваться для получения серьезности ошибки, которая привела CATCH к выполнению блока TRY...CATCH конструкции.
ERROR_SEVERITY возвращается NULL , если вызывается вне области CATCH блока. Дополнительные сведения см. в ERROR_SEVERITY.