다음을 통해 공유


SET ARITHIGNORE(Transact-SQL)

쿼리 실행 중 오버플로 또는 0으로 나누기 오류에서 오류 메시지를 반환할지 여부를 제어합니다.

적용 대상: SQL Server(SQL Server 2008 - current version), Windows Azure SQL 데이터베이스(최초 릴리스 - 현재 릴리스)

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

SET ARITHIGNORE { ON | OFF }
[ ; ]

주의

SET ARITHIGNORE 설정은 오류 메시지 반환 여부만 제어합니다. SQL Server는 이 설정에 관계없이 오버플로 또는 0으로 나누기 오류와 연관된 계산에서 NULL을 반환합니다. SET ARITHABORT 설정을 사용하여 쿼리 종료 여부를 결정할 수 있습니다. 그러나 이 설정은 INSERT, UPDATE, DELETE 문 실행 중에 발생한 오류에는 영향을 주지 않습니다.

SET ARITHABORT 옵션이나 SET ARITHIGNORE 옵션 중 하나가 OFF이고 SET ANSI_WARNINGS 옵션이 ON이면 SQL Server에서 0으로 나누기 또는 오버플로 오류가 발생할 경우 여전히 오류 메시지를 반환합니다.

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

참고 항목

참조

SET 문(Transact-SQL)

SET ARITHABORT(Transact-SQL)