Partilhar via


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

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

Transact-SQL convenções de sintaxe

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

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

Observações

A definição SET ARITHIGNORE apenas controla se uma mensagem de erro é devolvida. O SQL Server devolve um NULL num cálculo que envolve um erro de overflow ou divisão por zero, independentemente desta definição. A definição SET ARITHABORT pode ser usada para determinar se a consulta está terminada. Esta configuração não afeta erros que ocorrem durante as instruções INSERT, UPDATE e DELETE.

Se SET ARITHABORT ou SET ARITHIGNORE estiverem DESLIGADOS e SET ANSI_WARNINGS estiver LIGADO, o SQL Server ainda devolve uma mensagem de erro ao encontrar erros de divisão por zero ou de overflow.

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.

Para visualizar a definição atual desta definição, execute a seguinte consulta.

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

Permissions

Requer a participação na função pública.

Examples

O exemplo seguinte demonstra o uso de ambas SET ARITHIGNORE as definições com ambos os 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 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 o ARITHIGNORE está DESLIGADO.

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

Ver também

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