SET ARITHIGNORE (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

A SET ARITHIGNORE beállítás szabályozza, hogy a lekérdezés aritmetikai túlcsordulás vagy nullával osztó hibák esetén is visszaad-e hibaüzeneteket. A SET ARITHIGNORE ON beállítás elnyomja azokat az üzeneteket: "Nullával osztás történt." vagy "Aritmetikai túlcsordulás történt."

Transact-SQL szintaxis konvenciók

Szemantika

Szintaxis SQL Server, Azure SQL Database, Microsoft Fabric Data Warehouse, SQL adatbázisokhoz Microsoft Fabric


SET ARITHIGNORE { ON | OFF }

Az Azure Synapse Analytics and Analytics Platform System (PDW) szintaxisa


SET ARITHIGNORE OFF

Megjegyzések

  • Ha mind SET ARITHABORT az aritmetikai SET ANSI_WARNINGSOFF hiba előfordul, akkor figyelmeztető üzenet jelenik meg, amikor SET ARITHIGNORE , OFFés az aritmetikai művelet eredménye NULL.
  • Ha mind SET ARITHABORT az aritmetikai OFFSET ANSI_WARNINGS hiba előfordul, akkor nem jelenik meg figyelmeztető üzenet, ha SET ARITHIGNORE , ONés az aritmetikai művelet eredménye NULL.

A ARITHIGNORE beállítás csak azt szabályozza, hogy a lekérdezés hibaüzenetet ad-e. Az SQL Database Engine olyan számításban jelenik NULL meg, amely túlcsordulást vagy nullával osztó hibát tartalmaz, függetlenül ettől a beállítástól. Ez a beállítás nem befolyásolja azokat a hibákat, amelyek , INSERTUPDATE, és DELETE állítások alatt fordulnak elő.

Ha vagy SET ARITHABORTSET ARITHIGNORE vagy , OFFés SET ANSI_WARNINGS , ONa lekérdezés akkor is hibaüzenetet ad vissza, ha nullával osztó vagy túlcsorduló hibákkal találkozik. Amikor ANSI_WARNINGS is ON (az alapértelmezett állapot), a beállításnak ARITHABORT nincs funkcionális hatása.

A SET ARITHIGNORE beállítása végrehajtáskor vagy futtatáskor van beállítva, és nem elemzési időpontban.

Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Nézze meg a jelenlegi beállítást ARITHIGNORE

A jelenlegi beállítás ARITHIGNOREmegtekintéséhez futtassuk a következő T-SQL lekérdezést.

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

Permissions

A nyilvános szerepkör tagságát igényli.

Példák

Az alábbi példa mindkét SET ARITHIGNORE beállítást használ mindkét típusú lekérdezési hibával: nullával osztó és aritmetikai túlcsordulás.

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  

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

A következő példa bemutatja a nullával osztó arányt és a túlfolyó hibákat. Ez a példa nem ad vissza hibaüzenetet ezekre a hibákra, mert ARITHIGNORE .OFF

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