Udostępnij za pomocą


USTAW ARITHIGNORE (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Kontroluje, czy komunikaty o błędach są zwracane z powodu błędów przelewu czy dzielenia przez zero podczas zapytania.

Transact-SQL konwencje składni

Składnia

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

Uwaga / Notatka

Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.

Uwagi

Ustawienie USTAW ARITHIGNORE kontroluje jedynie, czy zostanie zwrócony komunikat o błędzie. SQL Server zwraca wartość NULL w obliczeniach obejmujących błąd przepełnienia lub dzielenia przez zero, niezależnie od tego ustawienia. Ustawienie SET ARITHABORT może być użyte do określenia, czy zapytanie zostało zakończone. To ustawienie nie wpływa na błędy występujące podczas instrukcji INSERT, UPDATE i DETETE.

Jeśli SET ARITHABORT lub SET ARITHIGNORE są WYŁĄCZONE, a SET ANSI_WARNINGS włączone, SQL Server nadal zwraca komunikat o błędzie przy wystąpieniu błędów dzielenia przez zero lub przepełnienia.

Ustawienie SET ARITHIGNORE jest ustawione w czasie wykonywania lub działania, a nie w czasie parsowania.

Aby zobaczyć aktualne ustawienie dla tego ustawienia, uruchom następujące zapytanie.

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

Permissions

Wymaga członkostwa w roli publicznej.

Przykłady

Poniższy przykład pokazuje użycie obu SET ARITHIGNORE ustawień z obiema typami błędów zapytań.

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  

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

Poniższy przykład demonstruje dzielenie przez zero oraz błędy przepełnienia. Ten przykład nie zwraca komunikatu o błędzie dla tych błędów, ponieważ ARITHIGNORE jest WYŁĄCZONY.

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

Zobacz też

INSTRUKCJE SET (Transact-SQL)
USTAW ARITHABORT (Transact-SQL)