SET ARITHIGNORE (Transact-SQL)

Controla se são retornadas mensagens de erro de estouro ou erros de divisão por zero durante uma consulta.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

SET ARITHIGNORE { ON | OFF }
[ ; ]

Comentários

A configuração SET ARITHIGNORE apenas controla se uma mensagem de erro é retornada. O SQL Server retorna um NULL em um cálculo que envolve um erro de estouro ou divisão por zero, independentemente dessa configuração. A configuração SET ARITHABORT pode ser usada para determinar se a consulta foi terminada. Essa configuração não afeta erros que ocorrem durante instruções INSERT, UPDATE e DELETE.

Se SET ARITHABORT ou SET ARITHIGNORE estiver definida como OFF e SET ANSI_WARNINGS como ON, o SQL Server ainda retornará uma mensagem de erro quando encontrar erros de divisão por zero ou de estouro.

A configuração de SET ARITHIGNORE é definida no momento da execução e não no momento da análise.

Para exibir a configuração atual dessa configuração, execute a consulta a seguir.

DECLARE @ARITHIGNORE VARCHAR(3) = 'OFF';
IF ( (128 & @@OPTIONS) = 128 ) SET @ARITHIGNORE = 'ON';
SELECT @ARITHIGNORE AS ARITHIGNORE;

Permissões

Requer associação à função public.

Exemplos

O exemplo a seguir demonstra o uso das duas configurações de SET ARITHIGNORE com os dois tipos de erros de consulta.

SET ARITHABORT OFF;
SET ANSI_WARNINGS OFF
GO

PRINT 'Setting ARITHIGNORE ON';
GO
-- SET ARITHIGNORE ON and testing.
SET ARITHIGNORE ON;
GO
SELECT 1 / 0 AS DivideByZero;
GO
SELECT CAST(256 AS TINYINT) AS Overflow;
GO

PRINT 'Setting ARITHIGNORE OFF';
GO
-- SET ARITHIGNORE OFF and testing.
SET ARITHIGNORE OFF;
GO
SELECT 1 / 0 AS DivideByZero;
GO
SELECT CAST(256 AS TINYINT) AS Overflow;
GO

Consulte também

Referência

Instruções SET (Transact-SQL)

SET ARITHABORT (Transact-SQL)