SET ARITHIGNORE (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Ponto de extremidade de análise de SQL no Microsoft FabricDepósito no Microsoft FabricBanco de dados SQL no Microsoft Fabric

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

Convenções de sintaxe de Transact-SQL

Sintaxe

-- Syntax for SQL Server and Azure SQL Database and Microsoft Fabric

SET ARITHIGNORE { ON | OFF }
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse  

SET ARITHIGNORE OFF

Observação

Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.

Comentários

A SET ARITHIGNORE configuração só 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 SETSET ARITHABORT configuração pode ser usada para determinar se a consulta foi encerrada. Essa configuração não afeta erros ocorrendo durante INSERT, UPDATE, e DELETE instruções.

Se qualquer um SET ARITHABORT dos ou SETSET ARITHIGNORE estiver DESLIGADO e SETSET ANSI_WARNINGS LIGADO, o SQL Server ainda retorna uma mensagem de erro ao encontrar erros de divisão por zero ou de overflow.

A configuração de é definida em tempo de execução ou execução e não em tempo de SET ARITHIGNORE 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  

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

O exemplo a seguir demonstra os erros de divisão por zero e de estouro. Este exemplo não retorna uma mensagem de erro para esses erros porque ARITHIGNORE está DESLIGADO.

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

Consulte Também

SET Instruções (Transact-SQL)
SET SET ARITHABORT (Transact-SQL)