Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Ustawienie to decyduje, SET ARITHIGNORE czy zapytanie zwraca komunikaty o błędach dotyczących przepełnienia arytmetycznego czy błędów dzielenia przez zero. Ustawienie to SET ARITHIGNORE ON tłumi komunikaty "Wystąpiło dzielenie przez zero." lub "Doszło do przepełnienia arytmetyki."
Transact-SQL konwencje składni
Składnia
Składnia bazy danych SQL Server, Azure SQL Database, Microsoft Fabric Data Warehouse SQL w Microsoft Fabric
SET ARITHIGNORE { ON | OFF }
Składnia dla usługi Azure Synapse Analytics i systemu platformy analizy (PDW)
SET ARITHIGNORE OFF
Uwagi
- Jeśli wystąpią zarówno i
SET ARITHABORTSET ANSI_WARNINGS, jakOFFi błąd arytmetyczny, pojawia się komunikat ostrzegawczy, gdySET ARITHIGNOREjest ,OFFa wynik operacji arytmetycznej toNULL. - Jeśli wystąpią zarówno i
SET ARITHABORT, jak i błąd arytmetyczny, nie pojawi się komunikat ostrzegawczy, jeśliSET ARITHIGNOREjest ,ONa wynik operacji arytmetycznej toNULL.OFFSET ANSI_WARNINGS
Ustawienie to ARITHIGNORE kontroluje jedynie, czy zapytanie zwraca komunikat o błędzie. SQL Database Engine zwraca w NULL obliczeniach z błędem przepełnienia lub dzielenia przez zero, niezależnie od tego ustawienia. To ustawienie nie wpływa na błędy występujące podczas INSERT, UPDATE, i DELETE instrukcji.
Jeśli lub SET ARITHABORTSET ARITHIGNORE jest , OFFa SET ANSI_WARNINGS jest , ONzapytanie nadal zwraca komunikat o błędzie, gdy napotka błędy dzielenia przez zero lub przepełnienia. Gdy ANSI_WARNINGS jest ( ON domyślnie), ustawienie nie ARITHABORT ma efektu funkcjonalnego.
Ustawienie jest SET ARITHIGNORE ustawione na czas wykonania lub działania, a nie na czas parsowania.
Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.
Zobacz aktualne ustawienia ARITHIGNORE
Aby zobaczyć aktualne ustawienie , ARITHIGNOREuruchom następujące zapytanie T-SQL.
DECLARE @ARITHIGNORE VARCHAR(3) = 'OFF';
IF ( (128 & @@OPTIONS) = 128 ) SET @ARITHIGNORE = 'ON';
SELECT @ARITHIGNORE AS ARITHIGNORE;
Permissions
Wymaga członkostwa w publicznej roli .
Przykłady
Poniższy przykład pokazuje użycie obu SET ARITHIGNORE ustawień z obiema typami błędów zapytań: dzielenie przez zero oraz przepełnienie arytmetyki.
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 metodę 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 .OFF
-- SET ARITHIGNORE OFF and testing.
SET ARITHIGNORE OFF;
SELECT 1 / 0 AS DivideByZero;
SELECT CAST(256 AS TINYINT) AS Overflow;