Severidade dos erros do Mecanismo de Banco de DadosDatabase Engine Error Severities

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Quando um erro é gerado pelo Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine, sua severidade indica o tipo de problema encontrado pelo SQL ServerSQL Server.When an error is raised by the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine, the severity of the error indicates the type of problem encountered by SQL ServerSQL Server.

Níveis de severidadeLevels of Severity

A tabela a seguir lista e descreve os níveis de severidade dos erros gerados pelo Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine.The following table lists and describes the severity levels of the errors raised by the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine.

Nível de severidadeSeverity level DescriçãoDescription
0-90-9 Mensagens informativas que retornam informações de status ou reportam erros que não sejam severos.Informational messages that return status information or report errors that are not severe. O Mecanismo de Banco de DadosDatabase Engine não gera erros de sistema com severidades de 0 a 9.The Mecanismo de Banco de DadosDatabase Engine does not raise system errors with severities of 0 through 9.
1010 Mensagens informativas que retornam informações de status ou reportam erros que não sejam severos.Informational messages that return status information or report errors that are not severe. Por razões de compatibilidade, o Mecanismo de Banco de DadosDatabase Engine converte a severidade 10 em severidade 0 antes de retornar as informações de erro ao aplicativo de chamada.For compatibility reasons, the Mecanismo de Banco de DadosDatabase Engine converts severity 10 to severity 0 before returning the error information to the calling application.
11-1611-16 Indica erros que podem ser corrigidos pelo usuário.Indicate errors that can be corrected by the user.
1111 Indica que um determinado objeto ou entidade não existe.Indicates that the given object or entity does not exist.
1212 Severidade especial para consultas que não usam bloqueio por causa de dicas de consulta especiais.A special severity for queries that do not use locking because of special query hints. Em alguns casos, operações de leitura executadas por essas instruções podem resultar em dados inconsistentes, pois os bloqueios não são usados para garantir a consistência.In some cases, read operations performed by these statements could result in inconsistent data, since locks are not taken to guarantee consistency.
1313 Indica erros de deadlock de transação.Indicates transaction deadlock errors.
1414 Indica erros relacionados à segurança, como uma permissão negada.Indicates security-related errors, such as permission denied.
1515 Indica erros de sintaxe no comando Transact-SQLTransact-SQL .Indicates syntax errors in the Transact-SQLTransact-SQL command.
1616 Indica erros gerais que podem ser corrigidos pelo usuário.Indicates general errors that can be corrected by the user.
17-1917-19 Indica erros de software que não podem ser corrigidos pelo usuário.Indicate software errors that cannot be corrected by the user. O usuário deve informar o problema ao seu administrador de sistema.Inform your system administrator of the problem.
1717 Indica que a instrução fez o SQL ServerSQL Server ficar sem recursos (como memória, bloqueios ou espaço em disco para o banco de dados) ou exceder algum limite definido pelo administrador de 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 um problema no software Mecanismo de Banco de DadosDatabase Engine , mas a instrução conclui a execução e a conexão com a instância do Mecanismo de Banco de DadosDatabase Engine é mantida.Indicates a problem in the Mecanismo de Banco de DadosDatabase Engine software, but the statement completes execution, and the connection to the instance of the Mecanismo de Banco de DadosDatabase Engine is maintained. O administrador de sistema deve ser informado sempre que uma mensagem com nível de severidade 18 ocorrer.The system administrator should be informed every time a message with a severity level of 18 occurs.
1919 Indica que um limite do Mecanismo de Banco de DadosDatabase Engine não configurável foi excedido e que o processo em lotes atual foi encerrado.Indicates that a nonconfigurable Mecanismo de Banco de DadosDatabase Engine limit has been exceeded and the current batch process has been terminated. Mensagens de erro com nível de severidade 19 ou maior pararam a execução do lote atual.Error messages with a severity level of 19 or higher stop the execution of the current batch. Erros de severidade 19 são raros e devem ser corrigidos pelo administrador de sistema ou por seu principal provedor de suporte.Severity level 19 errors are rare and must be corrected by the system administrator or your primary support provider. Contate seu administrador de sistema quando uma mensagem com severidade de nível 19 ocorrer.Contact your system administrator when a message with a severity level 19 is raised. Mensagens de erro com nível de severidade de 19 a 25 são gravadas no log de erros.Error messages with a severity level from 19 through 25 are written to the error log.
20-2420-24 Indique problemas de sistema que são erros fatais, ou seja, a tarefa do Mecanismo de Banco de DadosDatabase Engine que está executando uma instrução ou um lote que não está mais em execução.Indicate system problems and are fatal errors, which means that the Mecanismo de Banco de DadosDatabase Engine task that is executing a statement or batch is no longer running. A tarefa registra informações sobre o que aconteceu e, depois, é encerrada.The task records information about what occurred and then terminates. Na maioria dos casos, a conexão do aplicativo com a instância do Mecanismo de Banco de DadosDatabase Engine também pode ser encerrada.In most cases, the application connection to the instance of the Mecanismo de Banco de DadosDatabase Engine may also terminate. Se isso acontecer, dependendo do problema, é possível que o aplicativo não consiga se reconectar.If this happens, depending on the problem, the application might not be able to reconnect.

Mensagens de erro nesse intervalo podem afetar todos os processos que acessam dados no mesmo banco de dados e indicar que um banco de dados ou objeto está danificado.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. Mensagens de erro com nível de severidade de 19 a 24 são gravadas no log de erros.Error messages with a severity level from 19 through 24 are written to the error log.
2020 Indica que uma instrução encontrou um problema.Indicates that a statement has encountered a problem. Como o problema afetou apenas a tarefa atual, é improvável que o banco de dados tenha sido danificado.Because the problem has affected only the current task, it is unlikely that the database itself has been damaged.
2121 Indica que foi encontrado um problema que afeta todas as tarefas no banco de dados atual, mas é improvável que o banco de dados tenha sido danificado.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 a tabela ou o índice especificado na mensagem foi danificado por um problema de software ou hardware.Indicates that the table or index specified in the message has been damaged by a software or hardware problem.

Erros de severidade de nível 22 raramente ocorrem.Severity level 22 errors occur rarely. Se acontecer, execute o DBCC CHECKDB para determinar se outros objetos no banco de dados também foram danificados.If one occurs, run DBCC CHECKDB to determine whether other objects in the database are also damaged. O problema pode ser apenas no cache do buffer e não no próprio disco.The problem might be in the buffer cache only and not on the disk itself. Nesse caso, reiniciar a instância do Mecanismo de Banco de DadosDatabase Engine corrige o problema.If so, restarting the instance of the Mecanismo de Banco de DadosDatabase Engine corrects the problem. Para continuar trabalhando, você deve reconectar-se à instância do Mecanismo de Banco de DadosDatabase Engine; caso contrário, use o DBCC para corrigir o problema.To continue working, you must reconnect to the instance of the Mecanismo de Banco de DadosDatabase Engine; otherwise, use DBCC to repair the problem. Em alguns casos, pode ser necessário restaurar o banco de dados.In some cases, you may have to restore the database.

Se a reinicialização da instância do Mecanismo de Banco de DadosDatabase Engine não corrigir o problema, é porque o problema está no disco.If restarting the instance of the Mecanismo de Banco de DadosDatabase Engine does not correct the problem, then the problem is on the disk. Às vezes, destruir o objeto especificado na mensagem de erro pode resolver o problema.Sometimes destroying the object specified in the error message can solve the problem. Por exemplo, se a mensagem informar que a instância do Mecanismo de Banco de DadosDatabase Engine encontrou uma linha com comprimento 0 em um índice não clusterizado, exclua o índice e crie-o novamente.For example, if the message reports that the instance of the Mecanismo de Banco de DadosDatabase Engine has found a row with a length of 0 in a nonclustered index, delete the index and rebuild it.
2323 Indica que a integridade do banco de dados inteiro está em risco por um problema de software ou hardware.Indicates that the integrity of the entire database is in question because of a hardware or software problem.

Erros de severidade de nível 23 raramente ocorrem.Severity level 23 errors occur rarely. Se um acontecer, execute o DBCC CHECKDB para determinar a extensão do dano.If one occurs, run DBCC CHECKDB to determine the extent of the damage. O problema pode ser apenas no cache e não no próprio disco.The problem might be in the cache only and not on the disk itself. Nesse caso, reiniciar a instância do Mecanismo de Banco de DadosDatabase Engine corrige o problema.If so, restarting the instance of the Mecanismo de Banco de DadosDatabase Engine corrects the problem. Para continuar trabalhando, você deve reconectar-se à instância do Mecanismo de Banco de DadosDatabase Engine; caso contrário, use o DBCC para corrigir o problema.To continue working, you must reconnect to the instance of the Mecanismo de Banco de DadosDatabase Engine; otherwise, use DBCC to repair the problem. Em alguns casos, pode ser necessário restaurar o banco de dados.In some cases, you may have to restore the database.
2424 Indica uma falha de mídia.Indicates a media failure. O administrador de sistema pode ter que restaurar o banco de dados.The system administrator may have to restore the database. Também pode ser necessário contatar o seu fornecedor de hardware.You may also have to call your hardware vendor.

Severidade da mensagem de erro definida pelo usuárioUser-Defined Error Message Severity

sp_addmessage pode ser usado para adicionar mensagens de erro definidas pelo usuário com severidades de 1 a 25 à exibição do catálogo sys.messages .sp_addmessage can be used to add user-defined error messages with severities from 1 through 25 to the sys.messages catalog view. Essas mensagens de erro definidas pelo usuário podem ser usadas pelo RAISERROR.These user-defined error messages can be used by RAISERROR. Para obter mais informações, veja sp_addmessage (Transact-SQL).For more information, see sp_addmessage (Transact-SQL).

O RAISERROR pode ser usado para gerar mensagens de erro definidas pelo usuário com severidade de 1 a 25.RAISERROR can be used to generate user-defined error messages with severities from 1 through 25. O RAISERROR pode se referir a uma mensagem de erro definida pelo usuário armazenada na exibição do catálogo sys.messages ou criar uma mensagem dinamicamente.RAISERROR can reference a user-defined error message stored in the sys.messages catalog view or build a message dynamically. Quando a mensagem de erro definida pelo usuário em sys.messages é usada durante a geração de um erro, a severidade especificada pelo RAISERROR substitui a severidade especificada em 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 obter mais informações, consulte RAISERROR (Transact-SQL).For more information, see RAISERROR (Transact-SQL).

Gravidade do erro e TRY...CATCHError Severity and TRY...CATCH

Um constructo TRY...CATCH pega todos os erros de execução com gravidade acima de 10 que não encerram a conexão de banco de dados.A TRY...CATCH construct catches all execution errors with severity greater than 10 that do not terminate the database connection.

Erros com gravidade de 0 a 10 são mensagens informativas e não fazem a execução pular do bloco CATCH de um constructo 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.

Erros que encerram a conexão do banco de dados, normalmente com severidade de 20 a 25, não são controlados pelo bloco CATCH porque a execução é anulada quando a conexão é encerrada.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 obter mais informações, veja TRY...CATCH (Transact-SQL).For more information, see TRY...CATCH (Transact-SQL).

recuperando a severidade dos errosRetrieving Error Severity

A função do sistema ERROR_SEVERITY pode ser usada para recuperar a gravidade do erro que fez o bloco CATCH de um constructo TRY...CATCH ser executado.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. ERROR_SEVERITY retorna NULL se chamado de fora do escopo de um bloco CATCH.ERROR_SEVERITY returns NULL if called outside the scope of a CATCH block. Para obter mais informações, consulte ERROR_SEVERITY (Transact-SQL).For more information, see ERROR_SEVERITY (Transact-SQL).

Consulte TambémSee Also

Compreendendo os erros do Mecanismo de Banco de Dados Understanding Database Engine Errors
sys.messages (Transact-SQL) sys.messages (Transact-SQL)
Funções de sistema (Transact-SQL) System Functions (Transact-SQL)
TRY...CATCH (Transact-SQL)TRY...CATCH (Transact-SQL)