Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Ошибки, вызванные ядром базы данных Microsoft SQL Server, имеют атрибуты, описанные в следующей таблице.
| Атрибут | Описание |
|---|---|
| Номер ошибки | Каждое сообщение имеет уникальный номер ошибки. |
| Строка сообщения об ошибке | Сообщение об ошибке содержит диагностические сведения о причине ошибки. Многие сообщения об ошибках имеют подстановочные переменные, в которые заносятся сведения, например имя объекта, вызвавшего ошибку. |
| Тяжесть | Степень серьезности ошибки указывает, насколько она значительна. Ошибки с низкой степенью серьезности, например 1 или 2, являются информационными сообщениями или предупреждениями низкого уровня. Ошибки с высокой степенью серьезности указывают на проблемы, которые должны быть решены как можно быстрее. Дополнительные сведения о степенях серьезности см. в разделе Степени серьезности ошибок компонента Database Engine. |
| Штат | Некоторые сообщения об ошибках могут вызываться в нескольких точках в коде для ядра СУБД. Например, ошибка 1105 может возникнуть при различных условиях. Каждое условие, которое вызывает ошибку, присваивает уникальный код состояния. При просмотре баз данных, содержащих сведения о известных проблемах, таких как База знаний Майкрософт, можно использовать номер состояния, чтобы определить, совпадает ли обнаруженная ошибка. Например, если статья базы знаний описывает ошибку 1105 с состоянием 2, а получена ошибка 1105 с состоянием 3, ошибка, вероятно, возникла не по той причине, которая описана в статье. Инженер службы поддержки Майкрософт также может использовать код состояния ошибки, чтобы найти место в исходном коде, где возникает этот код ошибки. Эти данные могут предоставить дополнительные сведения для диагностики проблемы. |
| Имя процедуры | Имя хранимой процедуры или триггера, в которых произошла ошибка. |
| Номер строки | Указывает на инструкцию в пакете, хранимой процедуре, триггере или функции, которая сформировала ошибку. |
Все системные и пользовательские сообщения об ошибках в экземпляре СУБД содержатся в представлении каталога sys.messages. Инструкцию RAISERROR можно использовать для передачи ошибок, определяемых пользователем, приложению.
Все API для работы с базами данных, такие как пространство имен Microsoft .NET Framework SQLClient, объекты данных ActiveX (ADO), OLE DB и Open Database Connectivity (ODBC), сообщают о базовых характеристиках ошибок. Эти сведения включают номер ошибки и строку сообщения. Однако не все API-интерфейсы сообщают остальные атрибуты ошибки.
Сведения об ошибке, возникающей в области блока TRY конструкции TRY...CATCH, могут быть получены в коде Transact-SQL с помощью таких функций, как ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY и ERROR_STATE в области соответствующего блока CATCH. Дополнительные сведения см. в разделе TRY...CATCH (Transact-SQL).
Примеры
Пример ниже выполняет запрос представления каталога sys.messages, чтобы вернуть список всех системных и определяемых пользователем сообщений об ошибках в Движке базы данных с текстом на английском языке (1033).
SELECT
message_id,
language_id,
severity,
is_event_logged,
text
FROM sys.messages
WHERE language_id = 1033;
Дополнительные сведения см. в статье sys.messages (Transact-SQL).
См. также
sys.messages (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
ПОПЫТКА... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)