SET ARITHIGNORE (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

Inställningen SET ARITHIGNORE 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. Inställningen SETSET ARITHABORT 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 SETSET ARITHIGNORE är AV och SETSET ANSI_WARNINGS PÅ, ger SQL Server ändå ett felmeddelande vid delning med noll eller överflödesfel.

Inställningen av SET ARITHIGNORE är satt vid exekverings- eller körtid 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)
SET SET ARITHABORT (Transact-SQL)