SETARITIGNORER (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Styr om felmeddelanden returneras från överflödes- eller del-med-noll-fel under en fråga.

Transact-SQL syntaxkonventioner

Syntax

-- 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

Anmärkning

Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Anmärkningar

SET ARITHIGNORE-inställningen styr endast om ett felmeddelande returneras. SQL Server returnerar en NULL i en beräkning som involverar ett överflödes- eller dela-med-noll-fel, oavsett denna inställning. SET ARITHABORT-inställningen kan användas för att avgöra om frågan avslutas. Denna inställning påverkar inte fel som uppstår under INSERT-, UPDATE- och DELETE-satser.

Om antingen SET ARITHABORT eller SET ARITHIGNORE är AV och SET ANSI_WARNINGS är PÅ, returnerar SQL Server fortfarande ett felmeddelande vid delning med noll eller överflödesfel.

Inställningen för SET ARITHIGNORE är inställd vid exekverings- eller körningstid och inte vid parsetid.

För att se den aktuella inställningen för denna inställning, kör följande fråga.

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

Permissions

Kräver medlemskap i den offentliga rollen.

Examples

Följande exempel visar hur man använder båda SET ARITHIGNORE inställningarna med båda typerna av frågefel.

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  

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

Följande exempel visar delningen med noll och överflödesfelen. Detta exempel ger inget felmeddelande för dessa fel eftersom ARITHIGNORE är AV.

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

Se även

SET-instruktioner (Transact-SQL)
ANGE ARITHABORT (Transact-SQL)