SET 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 kontroluje SET ARITHIGNORE 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. To SETSET ARITHABORT ustawienie 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 INSERT, UPDATE, i DELETE instrukcji.

Jeśli którykolwiek SET ARITHABORT z tychSET ARITHIGNORESETlub jest WYŁĄCZONY i SETSET ANSI_WARNINGS jest włączony, SQL Server nadal zwraca komunikat o błędzie przy wystąpieniu błędów dzielenia przez zero lub przepełnienia.

Ustawienie jest SET ARITHIGNORE ustawione na czas wykonania lub działania, a nie na czas 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ż

SET Instrukcje (Transact-SQL)
SET SET ARITHABORT (Transact-SQL)