Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Настройка SET ARITHIGNORE управляет, возвращает ли запрос сообщения об ошибке при арифметическом переполнении или при делении на ноль. Настройка SET ARITHIGNORE ON подавляет сообщения «Произошло деление на ноль» или «Произошёл арифметический переполнение».
Соглашения о синтаксисе Transact-SQL
Синтаксис
Синтаксис для SQL Server, База данных SQL Azure, Microsoft Fabric Data Warehouse, SQL базы данных в Microsoft Fabric
SET ARITHIGNORE { ON | OFF }
Синтаксис для Системы платформы Azure Synapse Analytics и Analytics (PDW)
SET ARITHIGNORE OFF
Замечания
- Если оба
SET ARITHABORTиSET ANSI_WARNINGSявляютсяOFFи встречаются арифметическая ошибка, появляется предупреждающее сообщение, когдаSET ARITHIGNOREравнаOFF, и результат арифметической операции —NULL. - Если оба
SET ARITHABORTиSET ANSI_WARNINGSявляютсяOFFи встречаются арифметическая ошибка, предупреждающее сообщение не появляется, еслиSET ARITHIGNOREравенON, а результат арифметической операции равенNULL.
Настройка ARITHIGNORE только определяет, возвращает ли запрос сообщение об ошибке. SQL ядро СУБД возвращает NULL вычисление с ошибкой переполнения или делением на ноль, независимо от этой настройки. Эта настройка не влияет на ошибки, возникающие во INSERTвремя , UPDATEи DELETE операторов.
Если либо SET ARITHABORT либо SET ARITHIGNORE , либо , OFFа SET ANSI_WARNINGS равно ON, запрос всё равно возвращает сообщение об ошибке, когда встречается с ошибками деления на ноль или переполнения. Когда ANSI_WARNINGS — ON (по умолчанию), настройка не ARITHABORT имеет функционального эффекта.
Параметр SET ARITHIGNORE устанавливается во время выполнения или выполнения, а не во время синтаксического анализа.
Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Просмотр текущей настройки ARITHIGNORE
Чтобы просмотреть текущую настановку ARITHIGNORE, выполните следующий запрос T-SQL.
DECLARE @ARITHIGNORE VARCHAR(3) = 'OFF';
IF ( (128 & @@OPTIONS) = 128 ) SET @ARITHIGNORE = 'ON';
SELECT @ARITHIGNORE AS ARITHIGNORE;
Разрешения
Необходимо быть членом роли public.
Примеры
Следующий пример демонстрирует использование обоих SET ARITHIGNORE настроек с обоими типами ошибок запроса: делением на ноль и арифметическим переполнением.
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
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
Следующий пример демонстрирует деление на ноль и ошибки переполнения. Этот пример не возвращает сообщение об ошибке для этих ошибок, потому ARITHIGNORE что это OFF.
-- SET ARITHIGNORE OFF and testing.
SET ARITHIGNORE OFF;
SELECT 1 / 0 AS DivideByZero;
SELECT CAST(256 AS TINYINT) AS Overflow;