반응형

IT/DB 18

[MSSQL] RAISERROR란, 프로시져 에러 메세지 발생시키기

사용자가 테이블이 있는 화면에서 ROW를 추가해 정보를 입력하는 화면이 있다. P_CODE는 매 행마다 중복되지 않는 키기 때문에 사용자가 만약 기존에 이미 존재하는 P_CODE로 새 데이터를 저장하려고하면 '해당 코드는 이미 등록되어 있습니다' 라는 메세지를 띄워야했다. RAISERROR('메시지', 오류심각도, 상태 [옵션]) RAISERROR('@@ERROR!! 해당 코드는 이미 등록되어있습니다.', 18, -1) 오류 심각도 1~10 : 일반 사용자 정보 11~16 : 사용자 정의 오류 17~25 : 시스템 오류 - 모든 사용자는 0~18 까지의 심각도를 지정할 수 있다. - 19~25 까지는 sysadmin 고정 서버 역할의 멤버 또는 ALTER TRACE 권한을 가진 사용자만이 지정할 수 있다.

IT/DB 2022.06.27

[MSSQL] 다중 칼럼 PIVOT, 동적 PIVOT, 동적 UNPIVOT

PIVOT 연산자는 행으로 나열되어 있는 데이터를 열로 가공하는 것이다. 요구 사항 상, 한줄 컬럼 PIVOT이 아닌 다중컬럼, 또 행 데이터가 RANK 연산자로 인해 가변값들이었기 때문에 동적 UNPIVOT을 사용해야했다. DECLARE @QUERY VARCHAR(MAX); DECLARE @STRCOLUMNVARCHAR(MAX); DECALRE @KEYCOLUMN VARCHAR(MAX); -- 생략하였지만 위에서 이미 만들어준 #SERVICEACCEPT라는 테이블이 있다. /* RANK 연산자에 의해서 #SERVICEACCEPT ROW 데이터들이 변하기 때문에 이 값들을 @STRCOLUMN에 [],[],[], 형태로 담아준다. */ SET@STRCOLUMN = STUFF((SELECT '],[' + S..

IT/DB 2022.05.04
반응형