SET ARITHIGNORE (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade 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 }

Syntax for Azure Synapse Analytics and Analytics Platform System (PDW)


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 OFF como ocorrer um erro aritmético, não aparece uma mensagem de aviso se SET ARITHIGNORE for ON, e o resultado da operação aritmética for NULLSET ANSI_WARNINGS .

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 and Analytics Platform System (PDW)

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;