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). |
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