Compartir vía


Descripción de errores del motor de base de datos

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric

Los errores producidos por Microsoft Motor de base de datos de SQL Server tienen los atributos descritos en la tabla siguiente.

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.
severity 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.
State 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 SQLClient de Microsoft .NET Framework, 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.

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 el código de Transact-SQL mediante 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 TRY...CATCH (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 más información, consulte sys.messages (Transact-SQL).

Consulte también

sys.messages (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
TRY...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)