Delen via


STEL 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

Bepaalt of foutmeldingen worden teruggegeven door overflow of door delen door nul fouten tijdens een query.

Transact-SQL syntaxis-conventies

Syntaxis

-- Syntax for SQL Server and Azure SQL Database and Microsoft Fabric

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

SET ARITHIGNORE OFF

Opmerking

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

Opmerkingen

De instelling SET ARITHIGNORE bepaalt alleen of er een foutmelding wordt teruggegeven. SQL Server geeft een NULL terug in een berekening met een overflow- of deel-door-nul fout, ongeacht deze instelling. De SET ARITHABORT-instelling kan worden gebruikt om te bepalen of de query wordt beëindigd. Deze instelling beïnvloedt geen fouten die optreden tijdens INSERT-, UPDATE- en DELETE-instructies.

Als SET ARITHABORT of SET ARITHIGNORE UIT is en SET ANSI_WARNINGS AAN staat, geeft SQL Server nog steeds een foutmelding terug bij deling-door-nul of overflowfouten.

De instelling van SET ARITHIGNORE wordt ingesteld tijdens execute- of runtime en niet tijdens parsetijd.

Om de huidige instelling voor deze instelling te bekijken, voert u de volgende 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 laat zien hoe beide SET ARITHIGNORE instellingen worden gebruikt met beide typen queryfouten.

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 de deling door nul en de overloopfouten. Dit voorbeeld geeft geen foutmelding voor deze fouten omdat ARITHIGNORE UIT is.

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

Zie ook

SET-instructies (Transact-SQL)
SET ARITHABORT (Transact-SQL)