SET ARITHIGNORE (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di analisi (PDW)Endpoint di analisi SQL in Microsoft FabricMagazzino in Microsoft FabricDatabase SQL in Microsoft Fabric

L'impostazione SET ARITHIGNORE controlla se la query restituisce messaggi di errore per overflow aritmetico o errori di divisione per zero. L'impostazione SET ARITHIGNORE ON sopprime i messaggi "Divisione per zero avvenuta." o "È avvenuto un overflow aritmetico."

Convenzioni relative alla sintassi Transact-SQL

Sintassi

Sintassi per database SQL Server, database SQL di Azure, Microsoft Fabric Data Warehouse, SQL in Microsoft Fabric


SET ARITHIGNORE { ON | OFF }

Sintassi per Azure Synapse Analytics e piattaforma di strumenti analitici (PDW)


SET ARITHIGNORE OFF

Osservazioni:

  • Se sia e sono sia che si verifica un errore aritmetico, appare un messaggio di avvertimento quando SET ARITHIGNORE è OFF, e il risultato dell'operazione aritmetica è NULL.OFFSET ANSI_WARNINGSSET ARITHABORT
  • Se sia e sono sia che si verifica un errore aritmetico, non appare un messaggio di avviso se SET ARITHIGNORE è ON, e il risultato dell'operazione aritmetica è NULL.OFFSET ANSI_WARNINGSSET ARITHABORT

L'impostazione ARITHIGNORE controlla solo se la query restituisce un messaggio di errore. SQL motore di database restituisce NULL un calcolo che prevede un overflow o un errore di divisione per zero, indipendentemente da questa impostazione. Questa impostazione non influisce sugli errori che si verificano durante INSERTle istruzioni , UPDATE, e DELETE .

Se o SET ARITHABORTSET ARITHIGNORE è OFF, e SET ANSI_WARNINGS è ON, la query restituisce comunque un messaggio di errore quando incontra errori di divisione per zero o di overflow. Quando ANSI_WARNINGS è ON (il valore predefinito), l'impostazione di ARITHABORT non ha effetto funzionale.

L'impostazione di viene impostata in fase di SET ARITHIGNORE esecuzione o in fase di esecuzione e non in fase di analisi.

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

Visualizza l'attuale ambientazione di ARITHIGNORE

Per visualizzare l'impostazione attuale di ARITHIGNORE, esegui la seguente query T-SQL.

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

Autorizzazioni

È richiesta l'appartenenza al ruolo public .

Esempi

L'esempio seguente dimostra l'uso di entrambe SET ARITHIGNORE le impostazioni con entrambi i tipi di errori di query: divide-by-zero e overflow aritmetico.

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 Piattaforma di strumenti analitici (PDW)

L'esempio seguente mostra gli errori di divisione per zero e di overflow. Questo 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;