Descripción de errores del motor de base de datos

En la tabla siguiente se describen los atributos de los errores mostrados por SQL Server Database Engine (Motor de base de datos de SQL Server) de Microsoft.

Atributo

Descripción

Número de error

Cada mensaje de error tiene un número de error único.

Cadena de mensaje de error

El mensaje de error contiene información de diagnóstico acerca de la causa del error. Muchos mensajes de error tienen variables de sustitución en las que se inserta información como, por ejemplo, el nombre del objeto que genera el error.

Gravedad

La gravedad indica la importancia del error. Los errores que tienen una gravedad baja, como 1 o 2, son mensajes informativos o advertencias de bajo nivel. Los errores que tienen una gravedad alta indican problemas que deben ser atendidos tan pronto como sea posible. Para obtener más información sobre los niveles de gravedad, vea Niveles de gravedad de error del motor de base de datos.

Estado

Algunos mensajes de error se pueden generar en varios puntos del código de Motor de base de datos. Por ejemplo, el error 1105 se puede generar bajo diferentes condiciones. Cada condición específica bajo la que se genera un error asigna un código de estado único.

Cuando vea bases de datos que contengan información sobre problemas conocidos como, por ejemplo, Microsoft Knowledge Base, puede utilizar el número de estado para determinar si el problema registrado es el mismo que el error con el que se ha encontrado. Por ejemplo, si un artículo de Knowledge Base describe un error 1105 que tiene un estado 2 y el mensaje de error 1105 que ha recibido tenía un estado 3, el error tendrá probablemente una causa diferente a la explicada en el artículo.

Un ingeniero de soporte técnico de Microsoft también puede utilizar el código de estado de un error para localizar la ubicación del código fuente donde se ha generado el código de error. Esta información puede proporcionar ideas adicionales sobre cómo diagnosticar el problema.

Nombre del procedimiento

Nombre del procedimiento almacenado o desencadenador en que se ha producido el error.

Número de línea

Indica qué instrucción de un lote, procedimiento almacenado, desencadenador o función ha generado el error.

Todos los mensajes de error (del sistema o definidos por el usuario) de una instancia de Motor de base de datos se encuentran en la vista de catálogo sys.messages. Puede utilizar la instrucción RAISERROR para devolver a una aplicación errores definidos por el usuario.

Todas las API de base de datos, como el espacio de nombres Microsoft .NET FrameworkSQLClient, Objetos de datos ActiveX (ADO), OLE DB y Conectividad abierta de bases de datos (ODBC), notifican los atributos de error básicos. Esta información incluye el número de error y la cadena del mensaje. No obstante, no todas las API informan de los demás atributos de error. Para obtener más información, vea Controlar errores y mensajes en las aplicaciones.

La información sobre un error que se produce en el ámbito del bloque TRY de una construcción TRY…CATCH se puede obtener en código Transact-SQL utilizando funciones como ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY y ERROR_STATE en el ámbito del bloque CATCH asociado. Para obtener más información, vea Recuperar información de errores en Transact-SQL y Usar TRY...CATCH en Transact-SQL.

Ejemplos

En el siguiente ejemplo se envía una consulta a la vista de catálogo sys.messages en la que se solicita que devuelva una lista de todos los mensajes de error del sistema y definidos por el usuario en Motor de base de datos que tengan texto en inglés (1033).

SELECT
    message_id,
    language_id,
    severity,
    is_event_logged,
    text
  FROM sys.messages
  WHERE language_id = 1033;

Para obtener más información, vea sys.messages (Transact-SQL).