반응형

mssql 5

MYSQL, MSSQL INSERT INTO ... SELECT 구문

INSERT INTO ... SELECT 구문을 활용하여 데이터를 한 테이블에서 다른 테이블로 쉽게 이동하는 방법 시나리오 설명 상상해보죠, 우리에게는 employees와 former_employees 두 개의 테이블이 있다고 합니다. employees 테이블은 현재 직원들의 정보를, former_employees는 이전 직원들의 정보를 저장합니다. 이제, 우리의 목표는 employees 테이블에서 특정 조건을 만족하는 직원들을 former_employees 테이블로 이동시키는 것입니다. 테이블 구조 employees id: 직원 ID name: 이름 department: 부서 hire_date: 고용 날짜 former_employees id: 직원 ID name: 이름 department: 부서 end..

IT/DB 2024.01.21

[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] CASE 문 CASE WHEN THEN

기본 문법 CASE 컬럼명 WHEN 조건A THEN 값A WHEN 조건B THEN 값B ELSE 값C 활용방법 SELECT REPORTID , CASE WHEN ISNULL(FAILUREREASON,'') = '' THEN FAILURECAUSE ELSE FAILUREREASON ENDAS FAILUREREASON , CASE WHEN ISNULL(SYSOCURRDESC,'') = '' THEN USEROCURRDESC ELSE SYSOCURRDESC ENDAS FAILUREDESC FROM FAILUREREPORT WITH(NOLOCK) FAILUREREPORT 테이블에서 FAILUREREASON이 ''이거나 NULL 일경우 FAILURECAUSE를 뽑아주라. 값이 있다면 그대로 FAILUREREASO..

IT/DB 2022.04.22
반응형