SET ARITHIGNORE (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

De SET ARITHIGNORE instelling bepaalt of de query foutmeldingen teruggeeft voor rekenkundige overflow of deel-door-nul fouten. De SET ARITHIGNORE ON instelling onderdrukt de berichten "Divisie door nul is gebeurd." of "Rekenkundige overloop is voorgekomen."

Transact-SQL syntaxis-conventies

Syntaxis

Syntaxis voor SQL Server, Azure SQL Database, Microsoft Fabric Data Warehouse SQL-database in Microsoft Fabric


SET ARITHIGNORE { ON | OFF }

Syntaxis voor Azure Synapse Analytics en Analytics Platform System (PDW)


SET ARITHIGNORE OFF

Opmerkingen

  • Als zowel als zijn en een rekenfout optreedt, verschijnt er een waarschuwingsbericht wanneer SET ARITHIGNORE is OFF, en het resultaat van de rekenkundige bewerking is NULL.OFFSET ANSI_WARNINGSSET ARITHABORT
  • Als zowel als zijn en en een rekenfout optreedt, verschijnt er geen waarschuwingsbericht als SET ARITHIGNORE is ON, en het resultaat van de rekenkundige bewerking is NULL.OFFSET ANSI_WARNINGSSET ARITHABORT

De ARITHIGNORE instelling bepaalt alleen of de query een foutmelding teruggeeft. De SQL Database Engine levert NULL een berekening met een overflow- of deel-door-nul fout, ongeacht deze instelling. Deze instelling beïnvloedt geen fouten die optreden tijdens INSERT, UPDATE, en DELETE statements.

Als een of SET ARITHABORTSET ARITHIGNORE of , OFFis , en SET ANSI_WARNINGS is ON, geeft de query nog steeds een foutmelding wanneer er deel-door-nul of overloopfouten worden tegengekomen. Wanneer ANSI_WARNINGS is ON (de standaard), heeft de instelling van ARITHABORT geen functioneel effect.

De instelling van SET ARITHIGNORE wordt ingesteld bij uitvoering of uitvoeringstijd en niet op parseringstijd.

Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Bekijk de huidige instelling van ARITHIGNORE

Om de huidige instelling van ARITHIGNOREte bekijken, voer je de volgende T-SQL-query uit.

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

Permissions

Vereist lidmaatschap van de openbare rol.

Voorbeelden

Het volgende voorbeeld toont het gebruik van beide SET ARITHIGNORE instellingen met beide typen queryfouten: delen door-nul en rekenkundige overloop.

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  

Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)

Het volgende voorbeeld toont deel-door-nul en de overloopfouten. Dit voorbeeld geeft geen foutmelding terug voor deze fouten omdat ARITHIGNORE is OFF.

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