Когда при работе с запросами в SQL или тестировании приложения вы получаете исключение SQL, то можно увидеть 2 полезных свойства, уровень ошибки (severity) и ее номер.
Посмотрев информацию о них можно предпринимать осмысленные действия.
Посмотреть описания ошибок, (на английском), можно запустив запрос:
(sql2000/ 2005)
Select *
From master..sysmessages
Error Severity
Уровень (важность) ошибки важный параметр, показывающий степерь проблем.
Он варьируется от 0 до 25, причем вы можете увидеть только от 0 до 19, далее уже идут серъезные ошибки обрывающие подключение.
КРАТКИЕ ОПИСАНИЯ УРОВНЕЙ
0 to 10 Messages with a severity level of 0 to 10 are informational messages and not actual errors. ( уровень 0..10 обозначает просто информационное сообщение, т.е. это не ошибка )
11 to 16 Severity levels 11 to 16 are generated as a result of user problems and can be fixed by the user. For example, the error message returned in the invalid update query, used earlier, had a severity level of 16. (Уровень 11..16 обозначает что у пользователя произошла ошибка с данными и он может ее поправить, например пользователь ввел данные нарушающие ограничения базы данных)
17 Severity level 17 indicates that SQL Server has run out of a configurable resource, such as locks. Severity error 17 can be corrected by the DBA, and in some cases, by the database owner. (Уровень 17 указывает что у SQL Server не осталось настраиваемых ресурсов, например блокировок. Этот код ошибки может быть исправлен DBA, и в некоторых случаях, владелец базы данных)
18 Severity level 18 messages indicate nonfatal internal software problems. (18 уровень показывает что произошла нефатальная ошибка в ПО SQL сервера
19 Severity level 19 indicates that a nonconfigurable resource limit has been exceeded. (19 уровень показывает что превышен лимит ненастраиваемых ресурсов что это не представляю :))
ЗАМЕЧАНИЕ
Ошибки уровней 19 - 25 - фатальные, и могут быть через опцию RAISERROR пользователями группы sysadmin, при установленной опции ведения лога. Ошибки уровня 0-18 могут видеть все пользователи. Когда случается фатальная ошибка уровня 20-25, процесс создавший ошибку уничтожается, нефатальные ошибки обрабатываются. Для ошибок уровня выше 20 уничтожается клиентское соединение с SQL Server
20 Severity level 20 indicates a problem with a statement issued by the current process. (Проблема с состоянием текущего процесса)
21 Severity level 21 indicates that SQL Server has encountered a problem that affects all the processes in a database. (Ошибка влияет на все процессы в базе данных)
22 Severity level 22 means a table or index has been damaged. To try to determine the extent of the problem, stop and restart SQL Server. If the problem is in the cache and not on the disk, the restart corrects the problem. Otherwise, use DBCC to determine the extent of the damage and the required action to take. (Повреждение таблицы\индекса, чтобы понять постоянная ли ошибка перегрузите SQL сервер, если проблема в кэше а не диске перезагрузка решит проблему)
23 Severity level 23 indicates a suspect database. To determine the extent of the damage and the proper action to take, use the DBCC commands. (Ошибка в базе данных, запустите одну из DBCC команд)
24 Severity level 24 indicates a hardware problem. (Аппаратная ошибка )
25 Severity level 25 indicates some type of system error. (Какая то системная ошибка..)
State Number - перевел как код источника ошибки
Может быть от 1 до 127.
источник:
Microsoft SQL Server 2000 Error Messages
By Mark Spenik and Orryn Sledge
www.developer.com/db/article.php/10920_724711_2