SET ARITHIGNORE (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Toto nastavení ovládá SET ARITHIGNORE , zda dotaz vrací chybové zprávy o přetečení aritmetiky nebo chybách dělení nulou. Nastavení potlačuje SET ARITHIGNORE ON zprávy "Došlo k dělení nulou." nebo "Došlo k přetečení aritmetiky."

Transact-SQL konvence syntaxe

Syntaxe

Syntax pro databáze SQL Server, Azure SQL Database, Microsoft Fabric Data Warehouse v Microsoft Fabric


SET ARITHIGNORE { ON | OFF }

Syntaxe pro Azure Synapse Analytics a systém analytických platforem (PDW)


SET ARITHIGNORE OFF

Poznámky

  • Pokud dojde k aritmetické chybě a SET ARITHABORT , objeví se varovná zpráva, když SET ARITHIGNORE je , OFFa výsledek aritmetické operace je NULL.OFFSET ANSI_WARNINGS
  • Pokud dojde k aritmetické chybě a SET ARITHABORT a , varovná zpráva se neobjeví, pokud SET ARITHIGNORE je , ONa výsledek aritmetické operace je NULL.OFFSET ANSI_WARNINGS

Toto ARITHIGNORE nastavení určuje pouze to, zda dotaz vrátí chybovou zprávu. SQL Database Engine vrací NULL ve výpočtu chybu přetečení nebo dělení nulou, bez ohledu na toto nastavení. Toto nastavení neovlivňuje chyby, které vznikají během INSERT, UPDATE, a příkazů DELETE .

Pokud je nebo SET ARITHABORTSET ARITHIGNORE je OFF, a SET ANSI_WARNINGS je , ONdotaz stále vrací chybovou zprávu při chybách dělení nulou nebo přetečení. Když ANSI_WARNINGS je ( ON výchozí), nastavení nemá ARITHABORT žádný funkční efekt.

Nastavení je SET ARITHIGNORE nastaveno při spuštění nebo běhu a ne při parse.

Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.

Zobrazit aktuální nastavení ARITHIGNORE

Pro zobrazení aktuálního nastavení spusť ARITHIGNOREnásledující dotaz T-SQL.

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

Povolení

Vyžaduje členství ve veřejné roli .

Examples

Následující příklad ukazuje použití obou SET ARITHIGNORE nastavení s oběma typy chyb dotazů: dělit nulou a přetečení aritmetiky.

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říklady: Azure Synapse Analytics a Analytický platformový systém (PDW)

Následující příklad ukazuje dělení nulou a chyby přetečení. Tento příklad nevrací chybovou zprávu pro tyto chyby, protože ARITHIGNORE je .OFF

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