SET ARITHIGNORE (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsEndpoint de análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de dados SQL no Microsoft Fabric

A SET ARITHIGNORE configuração controla se a consulta devolve mensagens de erro para excesso aritmético ou erros de divisão por zero. A SET ARITHIGNORE ON definição suprime as mensagens "Ocorreu divisão por zero." ou "Ocorreu um transbordamento aritmético."

Transact-SQL convenções de sintaxe

Sintaxe

Sintaxe para bases de dados SQL Server, Base de Dados SQL do Azure, Microsoft Fabric Data Warehouse, SQL em Microsoft Fabric


SET ARITHIGNORE { ON | OFF }

Sintaxe para o Azure Synapse Analytics


SET ARITHIGNORE OFF

Observações

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

A ARITHIGNORE definição apenas controla se a consulta devolve uma mensagem de erro. O SQL Database Engine devolve NULL um cálculo envolvendo um erro de overflow ou divisão por zero, independentemente desta configuração. Esta definiçã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 devolve uma mensagem de erro quando encontra erros de divisão por zero ou de transbordamento. Quando ANSI_WARNINGS é ON (o padrão), a definição de ARITHABORT não tem efeito funcional.

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

Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.

Ver configuração atual de ARITHIGNORE

Para visualizar a definiçã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;  

Permissions

Requer adesão à função pública de .

Examples

O exemplo seguinte demonstra o uso de ambas SET ARITHIGNORE as definições com ambos os tipos de erros de consulta: dividir por zero e overflow 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

O exemplo seguinte demonstra a divisão por zero e os erros de transbordamento. Este exemplo não devolve uma mensagem de erro para estes erros porque ARITHIGNORE é OFF.

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