Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Analyseendpunkt in Microsoft Fabric
Lagerhaus in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
Die Einstellung SET ARITHIGNORE steuert, ob die Abfrage Fehlermeldungen für arithmetische Überlauf- oder Divividationsfehler zurückgibt. Die Einstellung SET ARITHIGNORE ON unterdrückt die Nachrichten "Division durch Null geschah." oder "Arithmetischer Überlauf ist aufgetreten."
Transact-SQL-Syntaxkonventionen
Syntax
Syntax für SQL Server, Azure SQL-Datenbank, Microsoft Fabric Data Warehouse SQL-Datenbanken in Microsoft Fabric
SET ARITHIGNORE { ON | OFF }
Syntax für Azure Synapse Analytics und Analytics-Plattformsystem (PDW)
SET ARITHIGNORE OFF
Bemerkungen
- Wenn sowohl
SET ARITHABORTals auchSET ANSI_WARNINGSsindOFFund ein rechentechnischer Fehler auftritt, erscheint eine Warnmeldung, wennSET ARITHIGNORE,OFFund das Ergebnis der arithmetischen Operation istNULL. - Wenn sowohl
SET ARITHABORTals auchSET ANSI_WARNINGSsindOFFund ein Rechenfehler auftritt, erscheint keine Warnmeldung, wennSET ARITHIGNORE,ONund das Ergebnis der arithmetischen Operation istNULL.
Die Einstellung steuert ARITHIGNORE nur, ob die Abfrage eine Fehlermeldung zurückgibt. Die SQL Datenbank-Engine liefert eine Berechnung zurück, NULL die einen Überlauf- oder Teile-durch-Null-Fehler enthält, unabhängig von dieser Einstellung. Diese Einstellung beeinflusst keine Fehler, die während INSERT, UPDATE, und DELETE Anweisungen auftreten.
Wenn entweder SET ARITHABORT oder SET ARITHIGNOREOFF, und SET ANSI_WARNINGS , ONist, liefert die Abfrage dennoch eine Fehlermeldung, wenn sie auf Divivide-by-Zero- oder Überlauffehler stößt. Wenn ANSI_WARNINGS dies ist ON (der Standard), hat die Einstellung von ARITHABORT keine funktionale Auswirkung.
Die Einstellung wird SET ARITHIGNORE zur Ausführung oder Laufzeit und nicht zur Analysezeit festgelegt.
Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.
Aktuellen Einstellungen von ARITHIGNORE
Um die aktuelle Einstellung von ARITHIGNOREanzuzeigen, führen Sie die folgende T-SQL-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
Das folgende Beispiel zeigt, wie beide SET ARITHIGNORE Einstellungen mit beiden Arten von Abfragefehlern verwendet werden: Teilen-durch-Null und arithmetischer Überlauf.
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)
Das folgende Beispiel zeigt die Teilung durch Null und die Überlauffehler. Dieses Beispiel gibt für diese Fehler keine Fehlermeldung zurück, weil ARITHIGNORE .OFF
-- SET ARITHIGNORE OFF and testing.
SET ARITHIGNORE OFF;
SELECT 1 / 0 AS DivideByZero;
SELECT CAST(256 AS TINYINT) AS Overflow;