ERROR_NUMBER (Transact-SQL)
Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric
Essa função retorna o número do erro que fez com que o bloco CATCH de um constructo TRY…CATCH fosse executado.
Convenções de sintaxe de Transact-SQL
Sintaxe
ERROR_NUMBER ( )
Observação
Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.
Tipos de retorno
int
Valor retornado
Quando chamado em um bloco CATCH, ERROR_NUMBER
retorna o número do erro que fez com que o bloco CATCH fosse executado.
ERROR_NUMBER
retorna NULL quando chamado fora do escopo de um bloco CATCH.
Comentários
ERROR_NUMBER
dá suporte a chamadas em qualquer lugar dentro do escopo de um bloco CATCH.
ERROR_NUMBER
retorna um número de erro relevante, independentemente de quantas vezes ou de em que local ele é executado dentro do escopo do bloco CATCH
. É diferente de uma função como @@ERROR, que retorna apenas um número de erro na instrução imediatamente após àquela que causa um erro.
Em um bloco CATCH
aninhado, ERROR_NUMBER
retorna o número do erro específico do escopo do bloco CATCH
que referenciou esse bloco CATCH
. Por exemplo, o bloco CATCH
de um constructo TRY...CATCH externo poderia ter um constructo TRY...CATCH
interno. Dentro desse bloco CATCH
interno, ERROR_NUMBER
retorna o número do erro que invocou o bloco CATCH
interno. Se ERROR_NUMBER
é executado no bloco CATCH
externo, ele retorna o número do erro que invocou esse bloco CATCH
externo.
Exemplos
a. Usando ERROR_NUMBER em um bloco CATCH
Este exemplo a seguir mostra uma instrução SELECT
que gera um erro de divisão por zero. O bloco CATCH
retorna o número do erro.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;
GO
Este é o conjunto de resultados.
-----------
(0 row(s) affected)
ErrorNumber
-----------
8134
(1 row(s) affected)
B. Usando ERROR_NUMBER em um bloco CATCH com outras ferramentas de tratamento de erros
Este exemplo a seguir mostra uma instrução SELECT
que gera um erro de divisão por zero. Juntamente com o número do erro, o bloco CATCH
retorna informações sobre esse erro.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_LINE() AS ErrorLine,
ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Este é o conjunto de resultados.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ---------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Consulte Também
sys.messages (Transact-SQL)
TRY...CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Referência de erros e eventos (Mecanismo de Banco de Dados)
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: ao longo de 2024, vamos eliminar problemas do GitHub como o mecanismo de comentários para conteúdo e substituí-lo por um novo sistema de comentários. Para obter mais informações, consulte:Enviar e exibir comentários de