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

A SET ARITHIGNORE configuração controla se a consulta retorna mensagens de erro para transbordamento aritmético ou erros de divisão por zero. A SET ARITHIGNORE ON configuração suprime as mensagens "Divisão por zero ocorreu." ou "Transbordamento aritmético ocorreu."

Convenções de sintaxe de Transact-SQL

Sintaxe

Sintaxe para banco de dados SQL Server, Banco de Dados SQL do Azure, Microsoft Fabric Data Warehouse, SQL em Microsoft Fabric


SET ARITHIGNORE { ON | OFF }

Sintaxe para Azure Synapse Analytics e PDW (Analytics Platform System)


SET ARITHIGNORE OFF

Comentários

  • Se ambos e são e ocorrer um erro aritmético, uma mensagem de aviso aparece quando SET ARITHIGNORE é OFF, e o resultado da operação aritmética é NULL.OFFSET ANSI_WARNINGSSET ARITHABORT
  • Se tanto SET ARITHABORT e forem OFF quanto ocorrer um erro aritmético, uma mensagem de aviso não aparece se SET ARITHIGNORE for ON, e o resultado da operação aritmética for NULLSET ANSI_WARNINGS .

A ARITHIGNORE configuração controla apenas se a consulta retorna uma mensagem de erro. O SQL Mecanismo de Banco de Dados retorna NULL um cálculo envolvendo um erro de transbordamento ou divisão por zero, independentemente dessa configuração. Essa configuração não afeta erros que ocorrem durante INSERTas instruções , UPDATE, e DELETE .

Se ou SET ARITHABORTSET ARITHIGNORE for OFF, e SET ANSI_WARNINGS for ON, a consulta ainda retorna uma mensagem de erro quando encontra erros de divisão por zero ou de transbordamento. Quando ANSI_WARNINGS é ON (o padrão), a configuração de ARITHABORT não tem efeito funcional.

A configuração de é definida em tempo de execução ou execução e não em tempo de SET ARITHIGNORE análise.

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

Veja o cenário atual de ARITHIGNORE

Para visualizar a configuração atual de ARITHIGNORE, execute a seguinte consulta T-SQL.

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

Permissões

Requer associação à função pública .

Exemplos

O exemplo a seguir demonstra o uso de ambas SET ARITHIGNORE as configurações com ambos os tipos de erros de consulta: dividir por zero e transbordamento aritmético.

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 transbordamento. Este exemplo não retorna uma mensagem de erro para esses erros porque ARITHIGNORE é OFF.

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