728x90
반응형
SMALL
MSSQL에서 0으로 나누면
에러가 발생을 합니다.
Divide by zero error encountered.
이렇게 에러가 발생합니다.
에러가 발생하도록
샘플 쿼리를 작성하였습니다.
SELECT 100 / 0
위처럼 쿼리를 작성하면
아래처럼 에러가 발생합니다.
이렇게 0으로 나눠서 에러가 발생할 때
조치하는 방법으로는
SET으로 선언을 해주면 됩니다.
아래처럼 쿼리를 작성하였습니다.
SET으로 3개 선언하였습니다.
SET ANSI_WARNINGS OFF SET ARITHIGNORE ON SET ARITHABORT OFF SELECT 100 / 0
위처럼 쿼리를 작성하였더니
아래처럼 NULL로 값을 반환합니다.
위 SET으로 선언한 것들에 대한
설명을 드리도록 하겠습니다.
SET ANSI_WARNINGS OFF
집계를 하는 중 오류가 발생하여
에러 메시지가 발생하면
레코드로 인식하여 에러가 뜨게 됩니다.
그것으로 OFF 로 설정하는 것입니다.
그래서 경고를 꺼놓는 것입니다.
SET ARITHIGNORE ON
쿼리 도중 오버플로 발생
또는 0으로 나누어 오류가 발생 시
오류메시지 반환 여부를 제어합니다.
오류메시지가 반환할 지 여부를 제어하는 것으로
오버플로 또는 0으로 나누면
NULL값이 반환됩니다.
SET ARITHABORT OFF
SET ARITHIGNORE ON으로 선언 시
오류 발생하면 트랜잭션을 롤백시킵니다.
이렇게 선언 함으로서
오류난 것에 대해서는 NULL로 반환하고
하위 쿼리를 계속해서 실행을 시킵니다.
이상으로 SQL SERVER에서 0으로 나누어
에러가 발생 시 조치하는 방법이였습니다~
728x90
반응형
LIST
'컴퓨터관련 > MS-SQL' 카테고리의 다른 글
[MS-SQL]WHILE문을 이용하여 반복문 쓰기 (0) | 2019.08.16 |
---|---|
[MS-SQL]WITH NOLOCK 설명 및 사용법 (0) | 2019.08.08 |
[MS-SQL]실행계획 보기 및 설명 (0) | 2019.07.31 |
[MS-SQL]유니코드로 다국적언어 사용 및 VARCHAR와 NVARCHAR 차이 (0) | 2019.07.26 |
[MS-SQL]요일구하기 및 특정요일 데이터 추출하기 (3) | 2019.07.25 |