SET ARITHIGNORE (Transact-SQL)

Si applica a: SQL Server (tutte le versioni supportate) Azure SQL Database Istanza gestita di SQL di Azure Azure Synapse Analytics Analytics Platform System (PDW)

Determina se vengono restituiti messaggi di errore in caso di divisione per zero o di overflow durante l'esecuzione di una query.

Icona di collegamento argomento IconaTransact-SQL Sintassi Transact-SQL Convenzioni

Sintassi

-- Syntax for SQL Server and Azure SQL Database

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

SET ARITHIGNORE OFF

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

Nota

Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.

Osservazioni

L'impostazione SET ARITHIGNORE controlla solo se viene restituito un messaggio di errore. SQL Server restituisce un valore NULL in un calcolo che implica un errore overflow o divide-by-zero, indipendentemente da questa impostazione. È possibile utilizzare l'opzione SET ARITHABORT per determinare se la query viene interrotta. Questa impostazione non influisce sugli errori che si verificano durante le istruzioni INSERT, UPDATE e DELETE.

Se SET ARITHABORT o SET ARITHIGNORE è DISATTIVATo e SET ANSI_WARNINGS è ON, SQL Server restituisce ancora un messaggio di errore durante l'rilevamento di errori di divisione per zero o overflow.

L'opzione SET ARITHIGNORE viene impostata in fase di esecuzione, non in fase di analisi.

Per visualizzare l'impostazione corrente per questa impostazione, eseguire la query riportata di seguito.

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

Autorizzazioni

È richiesta l'appartenenza al ruolo public.

Esempi

In questo esempio vengono illustrate entrambe le impostazioni dell'opzione SET ARITHIGNORE con entrambi i tipi di errore di query.

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  

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

Nell'esempio seguente vengono illustrati gli errori di divisione per zero e gli errori di overflow. L'esempio non restituisce un messaggio di errore per questi errori perché ARITHIGNORE è OFF.

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

Vedere anche

Istruzioni SET (Transact-SQL)
SET ARITHABORT (Transact-SQL)