[MSSQL] 경고: 집계 또는 다른 SET 작업에 의해 Null 값이 제거되었습니다.  

 

MS-SQL 에서 GROUP BY 등으로 집계연산시에 NULL 값이 있으면,

CASE 절로 예외처리 해줘도 

 

경고: 집계 또는 다른 SET 작업에 의해 Null 값이 제거되었습니다. 

 

와 같은 메세지가 나타난다. 이 메세지가 나타날때는 웹페이지에서 데이터로드시에는

오류가 발생하기도 한다.

 

이에 SELECT 절 실행전에 아래 키워드를 넣어준다.

SET ANSI_WARNINGS off;

 

 

SET ANSI_WARNINGS

 

 

MS-SQL 도움말 참조.

 

SET ANSI_WARNINGS는 다음 조건에 적용됩니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

  • ON으로 설정한 경우 SUM, AVG, MAX, MIN, STDEV, STDEVP, VAR, VARP, COUNT 등의 집계 함수에 NULL 값이 있으면 경고 메시지가 생성됩니다. OFF로 설정한 경우에는 경고가 발생하지 않습니다.
     
  • ON으로 설정한 경우 0으로 나누기 및 산술 오버플로 오류가 발생하면 문이 롤백되고 오류 메시지가 생성됩니다. OFF로 설정한 경우 0으로 나누기 및 산술 오버플로 오류가 발생하면 NULL 값이 반환됩니다. 새 값의 길이가 열의 최대 크기를 초과하는 character, Unicode 또는 binary 열에 INSERT나 UPDATE 작업을 하려고 하면 0으로 나누기 또는 산술 오버플로 오류로 인해 NULL 값이 반환될 수 있습니다. SET ANSI_WARNINGS 옵션이 ON이면 ISO 표준에 지정된 대로 INSERT나 UPDATE가 취소됩니다. 문자 열에 대해서는 후행 공백이, 이진 열에 대해서는 후행 NULL 값이 무시됩니다. 이 옵션이 OFF이면 열의 크기에 맞게 데이터가 잘리고 문이 성공적으로 실행됩니다.
     
    참고:
    binary 또는 varbinary 데이터로 또는 그 역으로의 변환에서 잘림이 일어날 때는 SET 옵션에 상관없이 경고나 오류가 생성되지 않습니다.

     

     

    참고:
    저장 프로시저 또는 사용자 정의 함수에 매개 변수를 전달할 때 또는 일괄 처리 문에서 변수를 선언하고 설정할 때 ANSI_WARNINGS는 인식되지 않습니다. 예를 들어 변수가 char(3)로 정의된 경우 3자보다 큰 값으로 설정하면 정의된 크기로 데이터가 잘리고 INSERT 또는 UPDATE 문이 성공합니다.

     

     

sp_configure의 user options를 사용하여 서버의 모든 연결에 대해 ANSI_WARNINGS의 기본값을 설정할 수 있습니다. 자세한 내용은 sp_configure(Transact-SQL) 또는 서버 구성 옵션 설정을 참조하십시오.

계산 열이나 인덱싱된 뷰에서 인덱스를 만들거나 조작할 때는 SET ANSI_WARNINGS 옵션을 ON으로 설정해야 합니다. SET ANSI_WARNINGS 옵션이 OFF이면 인덱싱된 뷰나 계산 열에 인덱스가 있는 테이블에서 CREATE, UPDATE, INSERT, DELETE 문이 실패합니다. 인덱싱된 뷰 및 계산 열의 인덱스에 사용되는 필수 SET 옵션 설정 방법은 SET(Transact-SQL)을 참조하십시오.

SQL Server에는 ANSI_WARNINGS 데이터베이스 옵션이 포함되어 있습니다. 이 옵션은 SET ANSI_WARNINGS와 같습니다. SET ANSI_WARNINGS 옵션이 ON이면, 0으로 나누기나 데이터베이스 열에 대해 너무 큰 문자열에서 오류나 경고가 발생하고, 기타 유사한 오류가 발생합니다. SET ANSI_WARNINGS 옵션이 OFF이면 이러한 오류나 경고가 발생하지 않습니다. model 데이터베이스에서 SET ANSI_WARNINGS의 기본값은 OFF입니다. 이 옵션을 지정하지 않으면 ANSI_WARNINGS 설정이 적용됩니다. SET ANSI_WARNINGS를 OFF로 설정하면 SQL Server가 sys.databases 카탈로그 뷰에 있는 is_ansi_warnings_on 열의 값을 사용합니다. 자세한 내용은 데이터베이스 옵션 설정을 참조하십시오.

분산 쿼리를 실행할 때는 ANSI_WARNINGS를 ON으로 설정해야 합니다.

SQL Server Native Client ODBC 드라이버와 SQL Server용 SQL Server Native Client OLE DB 공급자는 연결될 때 자동으로 ANSI_WARNINGS를 ON으로 설정합니다. ODBC 데이터 원본과 ODBC 연결 특성 또는 SQL Server에 연결하기 전에 응용 프로그램에 설정된 OLE DB 연결 속성에서 이 옵션을 구성할 수 있습니다. DB-Library 응용 프로그램으로부터 연결할 때 SET ANSI_WARNINGS의 기본값은 OFF입니다.

SET ANSI_DEFAULTS 옵션이 ON이면 SET ANSI_WARNINGS 옵션이 설정됩니다.

SET ANSI_WARNINGS 옵션은 실행 시 또는 런타임에 설정되며 구문 분석 시에는 설정되지 않습니다.

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

 



출처: https://www.jkun.net/270 [4P & JKUN]

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 86389
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 78830
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 95592
82 sqlrelay (Queue 서버 설치) SQL Relay는 강력한 데이터베이스 연결 관리 솔루션입니다 file 졸리운_곰 2020.02.17 1887
81 MySQL: 대량 접속 처리하기 졸리운_곰 2020.02.17 1626
80 My-SQL 연산함수/ISNULL/group by/compute 졸리운_곰 2020.02.01 1566
79 MySQL 세자리 마다 콤마 찍기 file 졸리운_곰 2020.01.24 1018
78 docker mysql 한글 깨짐 해결 & 초기 설정 졸리운_곰 2020.01.23 1981
77 select 결과를 update하는 방법은 여러가지가 존재합니다. 졸리운_곰 2019.03.02 1196
76 DB 중복 개수 확인 file 졸리운_곰 2019.02.16 1604
75 여러 row를 1개의 컬럼으로 리턴 ( GROUP_CONCAT ) 졸리운_곰 2019.01.29 1138
74 MySQL CONCAT 함수로 2개 이상의 필드(컬럼) 결합하기 졸리운_곰 2019.01.29 1070
73 [Mysql] 중복 데이터 값 찾기 졸리운_곰 2019.01.17 1500
72 [MySQL] 레코드 데이터 치환하기 (REPLACE) 졸리운_곰 2018.12.19 1343
71 [mysql] FOREIGN KEY 연관된 데이터 삭제 ON DELETE CASCADE file 졸리운_곰 2018.12.16 1380
70 [MYSQL]NULL 값을 다른 값으로 변경, [MySQL] IFNULL , select문에서 null값 치환 졸리운_곰 2018.11.23 1963
69 MySQL workbench safe mode 해제하기 file 졸리운_곰 2018.11.19 986
68 MySQL 중복 데이터 찾아서 삭제하기 졸리운_곰 2018.10.29 1288
67 MySQL에서 중복되는 행을 하나만 남기도 모두 삭제하는 방법 졸리운_곰 2018.10.29 1256
66 7 ways to convince MySQL to use the right index 졸리운_곰 2018.08.30 1766
65 MYSQL에서 원치않는 TABLE LOCK이 걸렸을 경우 해제 방법입니다. 졸리운_곰 2018.08.29 1316
64 제목 : [mysql] 현재날짜에서 이전달 구하기 file 졸리운_곰 2018.08.28 1741
63 [mysql-함수]날짜 관련 함수 모음 졸리운_곰 2018.08.24 1460
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED