SET ARITHIGNORE (Transact-SQL)
控制查询期间是否返回溢出或被零除错误的错误消息。
适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。 |
语法
SET ARITHIGNORE { ON | OFF }
[ ; ]
注释
SET ARITHIGNORE 设置只控制是否返回错误消息。 SQL Server 在计算中出现溢出或被零除错误时将返回 NULL,不考虑此设置。 可以使用 SET ARITHABORT 设置来确定是否终止查询。 此设置不影响 INSERT、UPDATE 和 DELETE 语句执行过程中发生的错误。
如果 SET ARITHABORT 或 SET ARITHIGNORE 为 OFF,而 SET ANSI_WARNINGS 为 ON,则遇到被零除或溢出错误时,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