Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Inställningen SET ARITHIGNORE styr om frågan returnerar felmeddelanden för aritmetiskt överflöd eller delade med noll-fel. Inställningen SET ARITHIGNORE ON undertrycker meddelandena "Division by zero" eller "Arithmetic overflow occured."
Transact-SQL syntaxkonventioner
Syntax
Syntax för SQL Server, Azure SQL Database, Microsoft Fabric Data Warehouse SQL-databaser i Microsoft Fabric
SET ARITHIGNORE { ON | OFF }
Syntax för Azure Synapse Analytics and Analytics Platform System (PDW)
SET ARITHIGNORE OFF
Anmärkningar
- Om både och är och ett aritmetiskt fel inträffar, visas ett varningsmeddelande när
SET ARITHIGNOREärOFF, och resultatet av den aritmetiska operationen ärNULL.OFFSET ANSI_WARNINGSSET ARITHABORT - Om både och är och ett aritmetiskt fel uppstår, visas inget varningsmeddelande om
SET ARITHIGNOREärON, och resultatet av den aritmetiska operationen ärNULL.OFFSET ANSI_WARNINGSSET ARITHABORT
Inställningen ARITHIGNORE styr endast om frågan returnerar ett felmeddelande. SQL Database Engine returnerar NULL i en beräkning som involverar ett överflödes- eller dela-med-noll-fel, oavsett denna inställning. Denna inställning påverkar inte fel som uppstår under INSERT, UPDATE, och DELETE satser.
Om antingen SET ARITHABORT eller SET ARITHIGNORE är OFF, och SET ANSI_WARNINGS är ON, returnerar frågan ändå ett felmeddelande när den stöter på del-med-noll- eller överflödesfel. När ANSI_WARNINGS är ON (standard) har inställningen av ARITHABORT ingen funktionell effekt.
Inställningen av SET ARITHIGNORE är satt vid exekverings- eller körtid och inte vid parsetid.
Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
Visa nuvarande inställning av ARITHIGNORE
För att se den aktuella inställningen för ARITHIGNORE, kör följande T-SQL-fråga.
DECLARE @ARITHIGNORE VARCHAR(3) = 'OFF';
IF ( (128 & @@OPTIONS) = 128 ) SET @ARITHIGNORE = 'ON';
SELECT @ARITHIGNORE AS ARITHIGNORE;
Permissions
Kräver medlemskap i offentlig roll.
Examples
Följande exempel visar att man använder båda SET ARITHIGNORE inställningarna med båda typerna av frågefel: dividering-med-noll och aritmetiskt överflöd.
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 delning med noll och överflödesfel. Detta exempel ger inget felmeddelande för dessa fel eftersom ARITHIGNORE är OFF.
-- SET ARITHIGNORE OFF and testing.
SET ARITHIGNORE OFF;
SELECT 1 / 0 AS DivideByZero;
SELECT CAST(256 AS TINYINT) AS Overflow;