Niveles de gravedad de error del motor de base de datosDatabase Engine Error Severities

SE APLICA A: síSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Cuando el Motor de base de datos de SQL ServerSQL Server Database Enginemuestra un error, la gravedad del error indica el tipo de problema detectado por SQL ServerSQL Server.When an error is raised by the Motor de base de datos de SQL ServerSQL Server Database Engine, the severity of the error indicates the type of problem encountered by SQL ServerSQL Server.

Niveles de gravedadLevels of Severity

En la siguiente tabla se enumeran y describen los niveles de gravedad de los errores mostrados por el Motor de base de datos de SQL ServerSQL Server Database Engine.The following table lists and describes the severity levels of the errors raised by the Motor de base de datos de SQL ServerSQL Server Database Engine.

Nivel de gravedadSeverity level DescripciónDescription
0-90-9 Mensajes informativos que devuelven información de estado o informan sobre errores que no son graves.Informational messages that return status information or report errors that are not severe. El Motor de base de datosDatabase Engine no muestra errores del sistema con gravedades de 0 a 9.The Motor de base de datosDatabase Engine does not raise system errors with severities of 0 through 9.
1010 Mensajes informativos que devuelven información de estado o informan sobre errores que no son graves.Informational messages that return status information or report errors that are not severe. Por razones de compatibilidad, el Motor de base de datosDatabase Engine convierte la gravedad 10 en gravedad 0 antes de devolver la información de errores a la aplicación que hace la llamada.For compatibility reasons, the Motor de base de datosDatabase Engine converts severity 10 to severity 0 before returning the error information to the calling application.
11-1611-16 Indica errores que pueden ser corregidos por el usuario.Indicate errors that can be corrected by the user.
1111 Indica que un objeto o una entidad determinados no existen.Indicates that the given object or entity does not exist.
1212 Una gravedad especial para consultas que no utilizan bloqueo debido a sugerencias de consulta especiales.A special severity for queries that do not use locking because of special query hints. En algunos casos, las operaciones de lectura realizadas por estas instrucciones podrían producir datos incoherentes, ya que no se adoptan bloqueos para garantizar la coherencia.In some cases, read operations performed by these statements could result in inconsistent data, since locks are not taken to guarantee consistency.
1313 Indica errores de interbloqueo de transacciones.Indicates transaction deadlock errors.
1414 Indica errores relacionados con la seguridad, como es el caso de permisos denegados.Indicates security-related errors, such as permission denied.
1515 Indica errores de sintaxis en el comando Transact-SQLTransact-SQL .Indicates syntax errors in the Transact-SQLTransact-SQL command.
1616 Indica errores generales que pueden ser corregidos por el usuario.Indicates general errors that can be corrected by the user.
17-1917-19 Indica errores de software que no pueden ser corregidos por el usuario.Indicate software errors that cannot be corrected by the user. Informe al administrador del sistema sobre el problema.Inform your system administrator of the problem.
1717 Indica que la instrucción ha hecho que SQL ServerSQL Server se quede sin recursos (como, por ejemplo, memoria, bloqueos o espacio en disco para la base de datos) o ha superado alguno de los límites establecidos por el administrador del sistema.Indicates that the statement caused SQL ServerSQL Server to run out of resources (such as memory, locks, or disk space for the database) or to exceed some limit set by the system administrator.
1818 Indica un problema en el software de Motor de base de datosDatabase Engine pero la instrucción completa su ejecución y la conexión con la instancia del Motor de base de datosDatabase Engine se mantiene.Indicates a problem in the Motor de base de datosDatabase Engine software, but the statement completes execution, and the connection to the instance of the Motor de base de datosDatabase Engine is maintained. El administrador del sistema debe ser informado cada vez que se produce un mensaje con un nivel de gravedad 18.The system administrator should be informed every time a message with a severity level of 18 occurs.
1919 Indica que se ha superado un límite de Motor de base de datosDatabase Engine no configurable y el proceso por lotes actual ha finalizado.Indicates that a nonconfigurable Motor de base de datosDatabase Engine limit has been exceeded and the current batch process has been terminated. Los mensajes de error con nivel de gravedad 19 o superior detienen la ejecución del lote actual.Error messages with a severity level of 19 or higher stop the execution of the current batch. Los errores de nivel de gravedad 19 son poco frecuentes y deben ser corregidos por el administrador del sistema o por el proveedor principal de asistencia técnica.Severity level 19 errors are rare and must be corrected by the system administrator or your primary support provider. Póngase en contacto con el administrador del sistema cuando se produzca un mensaje con nivel de gravedad 19.Contact your system administrator when a message with a severity level 19 is raised. Los mensajes de error con nivel de gravedad entre 19 y 25 se escriben en el registro de errores.Error messages with a severity level from 19 through 25 are written to the error log.
20-2420-24 Indica problemas del sistema y son errores irrecuperables, lo que significa que ya no está en ejecución la tarea de Motor de base de datosDatabase Engine que esté ejecutando una instrucción o lote.Indicate system problems and are fatal errors, which means that the Motor de base de datosDatabase Engine task that is executing a statement or batch is no longer running. La tarea registra información sobre lo acontecido y, a continuación, finaliza.The task records information about what occurred and then terminates. En la mayoría de los casos, puede que también finalice la conexión de la aplicación a la instancia del Motor de base de datosDatabase Engine .In most cases, the application connection to the instance of the Motor de base de datosDatabase Engine may also terminate. Si esto ocurre, dependiendo del problema, la aplicación podría no conseguir volver a conectarse.If this happens, depending on the problem, the application might not be able to reconnect.

Los mensajes de error incluidos en este intervalo pueden afectar a todos los procesos que tienen acceso a los datos de la misma base de datos y pueden indicar que una base de datos u objeto está dañado.Error messages in this range can affect all of the processes accessing data in the same database and may indicate that a database or object is damaged. Los mensajes de error con nivel de gravedad entre 19 y 24 se escriben en el registro de errores.Error messages with a severity level from 19 through 24 are written to the error log.
2020 Indica que una instrucción ha encontrado un problema.Indicates that a statement has encountered a problem. Puesto que el problema ha afectado solo a la tarea actual, no es probable que la propia base de datos haya sido dañada.Because the problem has affected only the current task, it is unlikely that the database itself has been damaged.
2121 Indica que se ha encontrado un problema que afecta a todas las tareas de la base de datos actual, pero es poco probable que se haya dañado la base de datos.Indicates that a problem has been encountered that affects all tasks in the current database, but it is unlikely that the database itself has been damaged.
2222 Indica que la tabla o índice especificado en el mensaje ha sido dañado por un problema de software o hardware.Indicates that the table or index specified in the message has been damaged by a software or hardware problem.

Los errores de nivel de gravedad 22 se producen en raras ocasiones.Severity level 22 errors occur rarely. Si se produce uno de ellos, ejecute DBCC CHECKDB para determinar si hay otros objetos de la base de datos dañados.If one occurs, run DBCC CHECKDB to determine whether other objects in the database are also damaged. Es posible que el problema se encuentre solo en la caché del búfer y no en el propio disco.The problem might be in the buffer cache only and not on the disk itself. Si es así, al reiniciar la instancia del Motor de base de datosDatabase Engine se corregirá el problema.If so, restarting the instance of the Motor de base de datosDatabase Engine corrects the problem. Para seguir trabajando, deberá volver a conectarse a la instancia del Motor de base de datosDatabase Engine; en caso contrario, utilice DBCC para solucionar el problema.To continue working, you must reconnect to the instance of the Motor de base de datosDatabase Engine; otherwise, use DBCC to repair the problem. En algunas ocasiones, puede que tenga que restaurar la base de datos.In some cases, you may have to restore the database.

Si al reiniciar la instancia del Motor de base de datosDatabase Engine no se corrige el problema, el problema estará en el disco.If restarting the instance of the Motor de base de datosDatabase Engine does not correct the problem, then the problem is on the disk. Algunas veces se puede resolver si se destruye el objeto especificado en el mensaje de error.Sometimes destroying the object specified in the error message can solve the problem. Por ejemplo, si el mensaje le indica que la instancia del Motor de base de datosDatabase Engine ha encontrado una fila con longitud 0 en un índice no clúster, elimine el índice y vuelva a generarlo.For example, if the message reports that the instance of the Motor de base de datosDatabase Engine has found a row with a length of 0 in a nonclustered index, delete the index and rebuild it.
2323 Indica que se sospecha de la integridad de toda la base de datos debido al daño causado por un problema de hardware o software.Indicates that the integrity of the entire database is in question because of a hardware or software problem.

Los errores de nivel de gravedad 23 se producen en raras ocasiones.Severity level 23 errors occur rarely. Si se produce alguno, ejecute DBCC CHECKDB para determinar la magnitud de los daños.If one occurs, run DBCC CHECKDB to determine the extent of the damage. Es posible que el problema se encuentre solo en la caché y no en el propio disco.The problem might be in the cache only and not on the disk itself. Si es así, al reiniciar la instancia del Motor de base de datosDatabase Engine se corregirá el problema.If so, restarting the instance of the Motor de base de datosDatabase Engine corrects the problem. Para seguir trabajando, deberá volver a conectarse a la instancia del Motor de base de datosDatabase Engine; en caso contrario, utilice DBCC para solucionar el problema.To continue working, you must reconnect to the instance of the Motor de base de datosDatabase Engine; otherwise, use DBCC to repair the problem. En algunas ocasiones, puede que tenga que restaurar la base de datos.In some cases, you may have to restore the database.
2424 Indica un error en los medios.Indicates a media failure. Puede que el administrador del sistema tenga que restaurar la base de datos.The system administrator may have to restore the database. Puede que también tenga que llamar al distribuidor de hardware.You may also have to call your hardware vendor.

Gravedad de mensaje de error definida por el usuarioUser-Defined Error Message Severity

sp_addmessage se puede usar para agregar a la vista de catálogo sys.messages mensajes de error definidos por el usuario con niveles de gravedad de 1 a 25.sp_addmessage can be used to add user-defined error messages with severities from 1 through 25 to the sys.messages catalog view. Estos mensajes de error definidos por el usuario pueden ser utilizados por RAISERROR.These user-defined error messages can be used by RAISERROR. Para obtener más información, vea sp_addmessage (Transact-SQL).For more information, see sp_addmessage (Transact-SQL).

RAISERROR se puede utilizar para generar los mensajes del error definidos por el usuario con la gravedad comprendida entre 1 y 25.RAISERROR can be used to generate user-defined error messages with severities from 1 through 25. RAISERROR puede hacer referencia a un mensaje de error definido por el usuario almacenado en la vista de catálogo sys.messages o puede generar un mensaje dinámicamente.RAISERROR can reference a user-defined error message stored in the sys.messages catalog view or build a message dynamically. Si se usa el mensaje de error definido por el usuario de sys.messages mientras se genera un error, la gravedad especificada por RAISERROR reemplazará a la gravedad especificada en sys.messages.When using the user-defined error message in sys.messages while generating an error, the severity specified by RAISERROR overrides the severity specified in sys.messages. Para obtener más información, vea RAISERROR (Transact-SQL).For more information, see RAISERROR (Transact-SQL).

Gravedad de error y TRY...CATCHError Severity and TRY...CATCH

Una construcción TRY...CATCH detecta todos los errores de ejecución con una gravedad mayor de 10 que no finalizan la conexión de la base de datos.A TRY...CATCH construct catches all execution errors with severity greater than 10 that do not terminate the database connection.

Los errores con gravedad de 0 a 10 son mensajes informativos y no hacen que la ejecución salte desde el bloque CATCH de una construcción TRY...CATCH.Errors with severity from 0 through 10 are informational messages and do not cause execution to jump from the CATCH block of a TRY...CATCH construct.

Los errores que finalizan la conexión de la base de datos, normalmente con una gravedad de 20 a 25, no son controlados por el bloque CATCH porque la ejecución se anula al finalizar la conexión.Errors that terminate the database connection, usually with severity from 20 through 25, are not handled by the CATCH block because execution is aborted when the connection terminates.

Para obtener más información, vea TRY...CATCH (Transact-SQL).For more information, see TRY...CATCH (Transact-SQL).

recuperar la gravedad del errorRetrieving Error Severity

Se puede usar la función del sistema ERROR_SEVERITY para recuperar la gravedad del error que ha provocado la ejecución del bloque CATCH de una construcción TRY...CATCH.The ERROR_SEVERITY system function can be used to retrieve the severity of the error that caused the CATCH block of a TRY...CATCH construct to be run. Si se le llama fuera del ámbito de un bloque CATCH, ERROR_SEVERITY devuelve el valor NULL.ERROR_SEVERITY returns NULL if called outside the scope of a CATCH block. Para obtener más información, vea ERROR_SEVERITY (Transact-SQL).For more information, see ERROR_SEVERITY (Transact-SQL).

Consulte tambiénSee Also

Descripción de errores del motor de base de datos Understanding Database Engine Errors
sys.messages (Transact-SQL) sys.messages (Transact-SQL)
Funciones del sistema (Transact-SQL) System Functions (Transact-SQL)
TRY...CATCH (Transact-SQL)TRY...CATCH (Transact-SQL)