Controlando erros do Mecanismo de Banco de Dados

Muitos erros levantados pelo Mecanismo de banco de dados do SQL Server podem ser capturados e solucionados programaticamente. Os recursos para tratamento de erros são fornecidos pela linguagem Transact-SQL e pelas interfaces de programação de aplicativos (API) de acesso a dados que os aplicativos usam para acessar os dados armazenados no Mecanismo de Banco de Dados.

Os erros do Mecanismo de Banco de Dados podem ser controlados em dois níveis:

  • Erros podem ser tratado no Mecanismo de Banco de Dados adicionando-se o código de tratamento de erros aos lotes Transact-SQL, procedimentos armazenados, gatilhos ou funções definidas pelo usuário.

  • Os erros podem retornar ao aplicativo que está chamando e serem controlados no código de aplicativo. Cada um das APIs que os aplicativos usam para acessar o Mecanismo de Banco de Dados fornece mecanismos para passar as informações de erros de volta ao aplicativo.

Tópico

Descrição

Compreendendo os erros do Mecanismo de Banco de Dados

Cada erro do Mecanismo de Banco de Dados contém os seguintes atributos: um número de erro, uma cadeia de caracteres de mensagem, severidade, estado, nome do procedimento, e número de linha.

Recuperando informações de erro em Transact-SQL

O código Transact-SQL pode recuperar informações sobre erros que usam as funções ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY, ERROR_STATE e @@ERROR.

TRY...CATCH (Transact-SQL)

Os erros no código Transact-SQL podem ser processados com o uso da construção TRY…CATCH similar aos recursos de tratamento de exceções das linguagens Microsoft Visual C++ e Visual C#. Quando uma condição de erro for detectada em um bloco TRY, o controle é passado para um bloco CATCH, onde o erro pode ser processado.

Usando TRY...CATCH na Transact-SQL

Os erros no código Transact-SQL podem ser processados com o uso da construção TRY…CATCH similar aos recursos de controle de exceções das linguagens Microsoft Visual C++ e Visual C#. Quando uma condição de erro for detectada em um bloco TRY, o controle é passado para um bloco CATCH, onde o erro pode ser processado.

Usando RAISERROR

A instrução RAISERROR pode ser usada para levantar erros definidos pelo usuário. Ela também pode ser usada de um bloco CATCH, para passar para os erros de aplicativos processados neste mesmo bloco.

Usando PRINT

A instrução PRINT pode ser usada para retornar mensagens definidas pelo usuário ao aplicativo.

Usando a função @@ERROR

Em versões anteriores do SQL Server, a função @@ERROR é o meio básico para detectar erros em instruções Transact-SQL. A construção TRY.CATCH fornece a funcionalidade aperfeiçoada.

Tratando erros e mensagens em aplicativos

Cada um dos APIs de acesso aos dados , como ActiveX Data Objects (ADO), OLE DB, e Open Database Connectivity (ODBC), possuem mecanismos para gerar relatórios ao aplicativo sobre qualquer informação de erro recebida do Mecanismo de Banco de Dados.

Severidade dos erros do Mecanismo de Banco de Dados

Os erros e as mensagens de erro definidas pelo usuário do Mecanismo de Banco de Dados são levantados com severidades de 1 a 25. O procedimento sp_addmessage e RAISERROR podem ser usados para gerar mensagens de erro definidas pelo usuário .

Consulte também

Referência