본문 바로가기

반응형

프로그래밍

(162)
[MSSQL] MERGE를 사용하여 데이터 입력/수정/삭제를 한 번에 처리 데이터 입력/수정/삭제를 한 번에 처리할 수 있는 MERGE에 대해 알아보자 MERGE 단일 문에서 여러 DML(INSERT, UPDATE, DELETE) 작업을 수행할 수 있다. 즉, 여러 개의 개별 DML문을 단일 문으로 대체할 수 있다. 작업이 하나의 문 내에서 수행되면서, 데이터가 처리되는 횟수가 최소화되고 쿼리 성능이 향상된다. MERGE는 다음과 같이 사용한다. MERGE 변경될테이블명 AS A USING 기준테이블명 AS B ON A.컬럼명 = B.컬럼명 WHEN MATCHED THEN 일치할때쿼리문 WHEN NOT MATCHED THEN 불일치할때쿼리문 아래와 같이 기준 테이블의 칼럼을 지정할 수 있다. 또한, MATCHED, NOT MATCHED와 함께 추가 조건 지정도 가능하다. MER..
[Toad] Ctrl 키와 특정 키 누른 후 해당 키 재입력되는 현상 해결 (Shortcut keystrokes are not handled) Toad 프로그램에서 키 입력 이상 증상 해결 증상 Ctrl와 특정 키 입력 후 다시 특정 키 입력했을 때 이전키가 입력되는 현상 예시 1. Ctrl + C 입력 2. V 입력 => C가 입력됨 원인 Citrix Workspace 프로그램 설치할때 설정된 App Protection 옵션이 이런 증상을 일으킬 수 있다고 한다. 해결 Citrix Workspace 프로그램 제거 [참고] https://forums.toadworld.com/t/toad-editor-behaviour-copy-paste-ctrl-chars/50501/11 Toad Editor behaviour copy paste ctrl chars As they say in the stamp collecting world, philately w..
[MSSQL] ALL, ANY, SOME (하위 쿼리에서 값을 둘 이상 반환했습니다.) ALL, ANY, SOME 하위 쿼리 (서브 쿼리)의 결괏값이 2개 이상일 경우 사용 서브 쿼리란 SELECT 안에 또 다른 SELECT가 들어간 형태를 의미한다. SELECT 컬럼명 FROM [테이블A] WHERE 컬럼명 조건연산자 (SELECT 컬럼명 FROM [테이블B] WHERE 조건) 예제 테이블 A에서 특정 값을 출력하려고 하는데, 조건은 테이블B에서 이름이 꽁쥐인 값보다 큰 값이다. A B 번호 값 이름 값 1 40 윤선생 40 2 20 꽁쥐 10 3 40 꽁쥐 30 4 60 SELECT 번호, 값 FROM A WHERE 값 >= (SELECT 값 FROM B WHERE 이름 = '꽁쥐') 위의 쿼리는 테이블B에서 꽁쥐의 데이터가 2개 존재하기 때문에 오류가 발생한다. 테이블A에서 값을 출력..
[MSSQL] RAISERROR 프로시저 오류 처리 RAISERROR('메시지', 오류심각도, 상태 [옵션]) 메시지 사용자 정의 메시지 (최대 2,047자) 오류 심각도 1~10 : 일반 사용자 정보 11~16 : 사용자 정의 오류 17~25 : 시스템 오류 - 심각도를 10 이하로 주면 로그만 쌓이고 프로시저 수행에는 아무런 영향을 미치지 않는다. - 심각도를 11 이상을 주면 실제 오류가 발생되어 프로시저를 호출한 Application에서도 오류가 발생하게 된다. - 모든 사용자는 0부터 18까지의 심각도를 지정할 수 있고, 19부터 25까지는 sysadmin 고정 서버 역할의 멤버 또는 ALTER TRACE 권한을 가진 사용자만이 지정할 수 있다. - 20부터 25까지의 심각도는 치명적인 심각도로, 발생 시 클라이언트 연결이 종료되고 오류 및 애플..
[C#] Timer 타이머 (특정 시간마다 이벤트 반복 수행) 타이머를 이용해 특정 시간(매분/초)마다 반복 작업을 수행할 수 있다. 일종의 매크로/스케줄러 같은 역할을 수행하는 것이다. 1초 (1000 밀리초) 마다 이벤트 실행 class Example { private static Timer aTimer; private static readonly double cycleTime = 1000; // 1초 static void Main(string[] args) { SetTimer(); aTimer.Stop(); aTimer.Dispose(); } private static void SetTimer() { aTimer = new System.Timers.Timer(cycleTime); // 이벤트 핸들러 연결 aTimer.Elapsed += new ElapsedEv..

반응형