Системные ошибки объединяются в четыре отдельные группы. Database Engine предоставляет обширную информацию о каждой ошибке. Эта информация структурирована и включает:
♦ уникальный номер сообщения об ошибке;
♦ дополнительный номер в диапазоне от 0 до 25, который представляет степень уровня ошибки;
♦ номер строки, который указывает строку, в которой произошла ошибка;
♦ текст ошибки.
В примере 18.1 выдается запрос к таблице, которая не существует в базе данных sample.
Все сообщения об ошибках хранятся в системной таблице sysmessages базы данных master. Для просмотра информации из этой таблицы используйте представление просмотра каталогов sys.messages. Тремя наиболее важными столбцами этого представления являются messageid, severity и text.
Каждый уникальный номер ошибки имеет соответствующее сообщение об ошибке. (Текст сообщения хранится в столбце text, а соответствующий номер ошибки помещается в столбец messageid представления просмотра каталогов sys .messages.) В примере 18.1 сообщение, связанное с несуществующим или неправильно записанным объектом базы данных, соответствует номеру ошибки -208.
Степень уровня ошибки (столбец severity представления просмотра каталогов sys.messages) представлена в форме числа в диапазоне от 0 до 25. Уровни между 0 и 10 являются просто информационным сообщением, где ничего не нужно исправлять. Все уровни от 11 до 16 указывают на различные программные ошибки и могут быть разрешены пользователем. Значения 17 и 18 указывают на ошибки программного обеспечения и оборудования, которые обычно не завершают выполнение процесса. Все ошибки со степенью уровня от 19 и выше являются фатальными системными ошибками. Соединение программы, сгенерировавшей подобную ошибку, закрывается, а ее процесс будет затем удален.
Сообщения, связанные с программными ошибками (т. е. с уровнем между 11 и 16), отображаются только на экране. Все системные ошибки (ошибки со степенью 19 и выше) также записываются и в протокол.
В порядке разрешения ошибки вам обычно нужно прочесть подробное описание соответствующей ошибки. Вы также можете найти детальные описания ошибок в документе Books Online.
Сообщения системных ошибок записываются в протокол ошибок SQL Server Agent и в протокол приложений Windows. Следующие два раздела описывают эти два компонента.