SET ARITHIGNORE (Transact-SQL)

Gilt für:yesSQL Server (alle unterstützten Versionen) YesAzure SQL-Datenbank YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

Steuert die Rückgabe von Fehlermeldungen, die wegen Überlauffehlern oder Fehlern aufgrund einer Division durch Null während einer Abfrage auftreten.

Topic link iconTransact-SQL-Syntaxkonventionen

Syntax

-- Syntax for SQL Server and Azure SQL Database

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

SET ARITHIGNORE OFF

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder früher finden Sie unter Dokumentation zu früheren Versionen.

Hinweis

Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.

Bemerkungen

Die SET ARITHIGNORE-Einstellung steuert lediglich, ob eine Fehlermeldung zurückgegeben wird. SQL Server gibt unabhängig von dieser Einstellung in einer Berechnung NULL zurück, wenn ein Fehler durch Überlauf oder die Division durch 0 auftritt. Mithilfe der SET ARITHABORT-Einstellung kann bestimmt werden, ob die Abfrage beendet wird. Diese Einstellung wirkt sich nicht auf Fehler aus, die im Verlauf von INSERT-, UPDATE- und DELETE-Anweisungen auftreten.

Auch wenn SET ARITHABORT oder SET ARITHIGNORE auf OFF und SET ANSI_WARNINGS auf ON festgelegt sind, gibt SQL Server eine Fehlermeldung zurück, wenn ein Fehler aufgrund einer Division durch Null oder ein Überlauffehler auftritt.

Die Einstellung von SET ARITHIGNORE wird zur Ausführungszeit und nicht zur Analysezeit festgelegt.

Um die aktuelle Einstellung anzuzeigen, führen Sie die folgende Abfrage aus.

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

Berechtigungen

Erfordert die Mitgliedschaft in der public-Rolle.

Beispiele

Im folgenden Beispiel wird die Verwendung beider SET ARITHIGNORE-Einstellungen mit beiden Typen von Abfragefehlern veranschaulicht.

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  

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

Im folgenden Beispiel werden die Fehler aufgrund einer Division durch 0 (null) und Überlauffehler veranschaulicht. Dieses Beispiel gibt keine Fehlermeldung für diese Fehler zurück, da ARITHIGNORE auf OFF festgelegt ist.

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

Weitere Informationen

SET-Anweisungen (Transact-SQL)
SET ARITHABORT (Transact-SQL)