Sdílet prostřednictvím


NASTAV 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

Ovládá, zda jsou chybové zprávy vráceny z chyb přetečení nebo dělení nulou během dotazu.

Transact-SQL konvence syntaxe

Syntaxe

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

Poznámka:

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

Poznámky

Nastavení SET ARITHIGNORE ovládá pouze to, zda bude vrácena chybová zpráva. SQL Server vrací NULL ve výpočtu zahrnujícím chybu přetečení nebo dělení nulou, bez ohledu na toto nastavení. Nastavení SET ARITHABORT lze použít k určení, zda je dotaz ukončen. Toto nastavení neovlivňuje chyby vznikající během příkazů INSERT, UPDATE a DELETE.

Pokud je SET ARITHABORT nebo SET ARITHIGNORE VYPNUTO a SET ANSI_WARNINGS zapnuto, SQL Server stále zobrazí chybovou zprávu při chybách dělení nulou nebo přetečení.

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

Pro zobrazení aktuálního nastavení tohoto nastavení spusťte následující dotaz.

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

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 VYPNUTÝ.

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

Viz také

Příkazy SET (Transact-SQL)
PŘIPRAVTE ARITHABORT (Transact-SQL)