Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Осуществляет контроль возврата сообщения об ошибке при переполнении или делении на ноль во время выполнения запроса.
Соглашения о синтаксисе Transact-SQL
Синтаксис
-- 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
Примечание.
Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Замечания
Настройка SET ARITHIGNORE только определяет, возвращается ли сообщение об ошибке. При возникновении переполнения или при попытке деления на ноль SQL Server возвращает значение NULL вне зависимости от данной настройки. Этот SETSET ARITHABORT параметр можно использовать для определения завершения запроса. Эта настройка не влияет на ошибки, возникающие во время INSERT, UPDATE, и DELETE операторов.
Если один SET ARITHABORT из вариантов ВЫКЛЮЧЕН SETSET ARITHIGNORE и SETSET ANSI_WARNINGS включён, SQL Server всё равно возвращает сообщение об ошибке при сталкивании с делением на ноль или ошибками переполнения.
Параметр SET ARITHIGNORE устанавливается во время выполнения или выполнения, а не во время синтаксического анализа.
Чтобы просмотреть текущее значение для этого параметра, выполните следующий запрос.
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 что он ВЫКЛЮЧЕН.
-- SET ARITHIGNORE OFF and testing.
SET ARITHIGNORE OFF;
SELECT 1 / 0 AS DivideByZero;
SELECT CAST(256 AS TINYINT) AS Overflow;
См. также
SET Операторы (Transact-SQL)
SET
SET ARITHABORT (Transact-SQL)