SET ARITHIGNORE (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison d’analytique SQL dans Microsoft FabricEntrepôt dans Microsoft FabricBase de données SQL dans Microsoft Fabric

Le SET ARITHIGNORE paramètre détermine si la requête renvoie des messages d’erreur pour le débordement arithmétique ou pour les erreurs de division par zéro. Le SET ARITHIGNORE ON paramètre supprime les messages « Division par zéro survenue » ou « Débordement arithmétique survenu ».

Conventions de la syntaxe Transact-SQL

Syntaxe

Syntaxe pour SQL Server, Azure SQL Database, Microsoft Fabric Data Warehouse, SQL dans Microsoft Fabric


SET ARITHIGNORE { ON | OFF }

Syntaxe pour Azure Synapse Analytics et Analytics Platform System (PDW)


SET ARITHIGNORE OFF

Notes

  • Si et sont tous deux SET ARITHABORT et qu’une erreur arithmétique survient, un message d’avertissement apparaît lorsque SET ARITHIGNORE est OFF, et le résultat de l’opération arithmétique est NULL.OFFSET ANSI_WARNINGS
  • Si et sont tous deux SET ARITHABORT et qu’une erreur arithmétique survient, un message d’avertissement n’apparaît pas si SET ARITHIGNORE est ON, et le résultat de l’opération arithmétique est NULL.OFFSET ANSI_WARNINGS

Ce ARITHIGNORE paramètre ne contrôle que si la requête renvoie un message d’erreur. Le SQL Moteur de base de données renvoie NULL un calcul impliquant un débordement ou une erreur de division par zéro, quel que soit ce paramètre. Ce paramètre n’affecte pas les erreurs qui surviennent pendant INSERT, UPDATE, et DELETE les instructions.

Si SET ARITHABORT ou SET ARITHIGNORE est OFF, et SET ANSI_WARNINGS est ON, la requête renvoie toujours un message d’erreur lorsqu’elle rencontre des erreurs de division par zéro ou de dépassement. Lorsque ANSI_WARNINGS est ON (le réglage par défaut), le paramètre de ARITHABORT n’a aucun effet fonctionnel.

Le paramètre est défini au moment de SET ARITHIGNORE l’exécution ou de l’exécution et non au moment de l’analyse.

Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.

Voir le cadre actuel de ARITHIGNORE

Pour voir le réglage actuel de ARITHIGNORE, lancez la requête T-SQL suivante.

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

Autorisations

Nécessite l'appartenance au rôle public .

Exemples

L’exemple suivant montre l’utilisation des deux SET ARITHIGNORE paramètres avec les deux types d’erreurs de requête : division par zéro et dépassement arithmétique.

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  

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

L’exemple suivant montre la division par zéro et les erreurs de dépassement. Cet exemple ne renvoie pas de message d’erreur pour ces erreurs car ARITHIGNORE est OFF.

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