일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- git
- group by
- 한글 인코딩
- 과정평가형
- alias
- 이클립스
- Java
- CRUD
- HTTP Status 404
- github
- Bootstrap
- JavaScript
- jQuery
- Oracle SQL
- HTTP Status 500
- 답변형 게시판
- JSP
- sql developer
- distinct
- ||
- oracle
- rownum
- 성적프로그램
- 모조칼럼
- HTML
- 부트스트랩
- Oracle DB
- SQL
- 제약조건
- tomcat
Archives
초급의 끄적거림
[MSSQL] ANSI_WARNING 정리 본문
구문
SET ANSI_WARNINGS { ON | OFF }
조건에 적용
ON 일 경우 | OFF 일 경우 | |
집계 함수에 NULL 값이 있을 때 |
경고 메세지 발생 | 경고 메세지 발생X |
0으로 나누거나 산술 오버츨로 오류 발생 |
롤백되고 오류메세지 생성 | NULL 반환 |
새 값의 길이가 열의 최대 크기를 초과하는 CHARACTER, UNICODE, BINARY 열에 INSERT 나 UPDATE 작업 |
INSERT나 UPDATE 취소 | 0으로 나누기 또는 산술 오버플로 오류로 인해 NULL 반환 |
문자열 |
후행 공백, 이진 열에 대해서는 후행 NULL 값이 무시 |
열의 크기에 맞게 데이터가 잘리고 문이 성공적으로 실행 |
참고
- binary 또는 varbinary 데이터로 또는 그 역으로의 변환에서 잘림이 일어날 때는 set 옵션에 상관없이 경고나 오류가 생성되지 않음
- 저장 프로시저 또는 사용자 정의 함수에 매개 변수를 전달할 때 또는 일괄 처리 문에서 변수를 선언하고 설정할 때 ANSI_WARNINGS 는 인식되지 않음
- 예) 변수가 CHAR(3)으로 정의된 경우 3자보다 큰 값으로 설정하면 정의된 크기로 데이터가 잘리고 INSERT 또는 UPDATE 문이 성공함
- sp_configure의 user options를 사용하여 서버의 모든 연결에 대해 ansi_warnings의 기본값을 설정가능
- SET ANSI_WARINGS ON : 계산 열이나 인덱싱된 뷰에서 인덱스를 만들거나 조작할 때 / 분산쿼리 실행
- SET ANSI_DEFAULTS ON이면 SET ANSI_WARNINGS 옵션이 설정
- SET ANSI_WARNINGS 옵션 : 실행시, 또는 런타임에 설정며 구문 분석 시에는 설정되지 않음
- SET ARITHABORT 옵션이나 SET ARITHIGNORE 옵션 중 하나가 OFF 이고, SET ANSI_WARNINGS 옵션이 ON이면 SQL Server 에서 0으로 나누기 또는 오버플로 오류가 발생할 경우 여전히 오류 메세지 반환
'DB > MSSQL' 카테고리의 다른 글
[MSSQL] LEN (글자 수 확인) / DATALENGTH (바이트 확인) (0) | 2020.03.22 |
---|---|
[MSSQL] 임시테이블 존재 확인/삭제 (OBJECT_ID) (0) | 2020.03.21 |
[MSSQL] 테이블, 칼럼 개체 확장 속성 보기 (0) | 2020.01.13 |
[MSSQL] 락 (LOCK ) 걸린 쿼리 확인하고 해제 (0) | 2020.01.10 |
[MSSQL] 기본사항 (0) | 2019.12.27 |
Comments