본문 바로가기

프로시져7

MSSQL - select into 쿼리 select 된 내용을 테이블에 담아보자 프로시저 작업시 디버깅 방법으로 많이 사용하는게 바로 select into 쿼리 일 것이다. 조회된 데이터를 그대로 테이블에 담아 사용 하는 방법이다. 그래서 방법은 아주 간단하다. select 문에 INTO {테이블명} 을 입력하면 된다. 예제는 아래와 같다. SELECT * INTO NEW_TABLE FROM Member ▼아래처럼 실행해보면 같다. 실행이 된다. ▼Member의 데이터가 그대로 NEW_TABEL에 insert 되었다. 개발시에 꽤 쓸모 있는 방법이니 알아두자 마무리 요즘 mssql 쓰는 회사가 왜케 없나요^^ 2017. 12. 4.
MSSQL - while 예제 MSSQL while문 예제 오늘은 한번 while 예제릴 간단하게 작성해보았다. MSSQL하면 프로시져를 간단하고 가볍게 개발 할 수 있는게 최대 장점일 것 이다. 그 중에 while문은 실무에서 가장 애용 하는 방법중 하나이다. ▼그래서 익스프레스하게 아주 간단하게 작성해보았다. DECLARE @IDX INT /* 변수를 선언한다. */ SET @IDX=1 /* 1를 집어넣었다 */ WHILE @IDX 2017. 12. 2.
MSSQL - order by 에 case로 조건절 걸기 정렬을 동적으로 바꾸기 MS도구 들이 언어들이 모드 그렇지만 편의성을 많이 제공한다.이게 장점일수도 단점일수도 있지만.(요즘 들어 단점이라 생각이 든다.)하여튼 MSSQL 은 참 편리하다. 프로시져 개발하기 가장 좋은 매니저먼트를 제공하기 때문에인풋과 아웃풋만 정해주면 자유롭게 프로시져 안에서 로직을 구현할수 있다. 그중에 가장 많이 쓰는 방법인 CASE를 활용해 정렬을 바꾸어 보려고 한다.하지만 이 방법은 성능적으론 추천하지 못한다.조금 간단하고 데이터가 적은 로직에 쓰길 바란다.(참고로 CASE를 이용한 조건절 바꾸기는 타 DB에도 쓸수 있다.) 아래 쿼리를 확인해보자Order by 안에 CASE를 활용 하여 IF를 걸었다.그리고 해당 값일 경우 컬럼의 정렬을 바꾼다 BEGINDECLARE @ORDE.. 2017. 11. 14.
MSSQL - 음수 양수 분별 방법 MSSQL 에서 음수 양수를 구별하기 프로시져를 만들다 보면 결과값이 음수 혹은 양수일지 구별해야 하는 경우가 생긴다(상당히 자주 존재한다) 그래서 오늘은 mssql 에서 음수 양수를 구분하는 방법을 알아보자방법은 간단하다. sign 함수를 이용하면 된다 아래 쿼리를 실행해보자 select sign(-1) select sign(0) ▼아래처럼 숫자 크기와 상관없이 결과값을 도출한다. 마무리개발도 재밌지만 정리하는 재미도 즐겁습니다. 2017. 11. 7.
MSSQL - 0으로 나누기 오류 방지하기 MSSQL 0을 Null로 반환하여 isnull로 처리하기 MSSQL 에서 0으로 나눌시에는 오류가 발생한다. 0으로 숫자를 나눈건 로직이 잘못됐거나 모델링 잘못된 것이다.하지만 .. 사람 맘 같이 세상이 움직이겠는가..결국은 숫자가 꼬이고 꼬이면 0으로 나누고 결국 오류가 발생할것이다.오늘은 그래서 MSSQL에서 0으로 나누기 오류를 대비하는 법을 배워보겠다. 우선 아래처럼 쿼리를 MSSQL매니저먼트에서 실행해보자 SELECT 1000 / 0 ▼ 당연히 오류가 발생하였다. 수학에선 0으로 숫자를 나눌수 없다. 이번엔 이 쿼리를 실행해보자SET ANSI_WARNINGS OFFSET ARITHIGNORE ONSET ARITHABORT OFFselect 100 / 0 ▼ 아래처럼 NULL 이 반환 됐다. (.. 2017. 11. 6.
MSSQL - EXISTS 사용 방법 MSSQL EXISTS 사용 방법 MSSQL 하면 프로시져 만들기 참 좋다. MSSQL 매니지먼트 스튜디오가 편해서 그럴것이다. 실무에서 가장 많이 쓰고 헷갈리는 내장객체는 EXISTS 일것이다. 테이블을 검색해서 값이 있을때와 없을때를 구분한다. IF EXISTS( SELECT * FROM 테이블 WHERE ID = @ID ) BEGIN --//SELECT문의 결과값이 존재하면 진입 END ELSE BEGIN --//SELECT문의 결과값이 없을 경우에 진입 END 그리고 반대로 하고 싶으면 NOT EXISTS 를 사용하면 된다. IF NOT EXISTS( SELECT * FROM 테이블 WHERE ID = @ID ) BEGIN --//SELECT문의 결과값이 없을 경우에 진입 END ELSE BEGI.. 2017. 7. 11.
MSSQL - 프로시져 RAISERROR 예제, 프로시저 오류 캐치하기 MSSQL에서 RAISERROR 예제, 프로시저 오류 캐치하기 프로시져 오류시에 캐치할수 있는 방법이다.현재 사용하는 프로시져 맨위와 아래에 입력하면 끝성공과 실패 후에 액션도 만들어야겠죠? DECLARE @V_ERR INTSET @V_ERR = 0 BEGIN---------------------------------------------------------------------/// 프로시져 실행------------------------------------------------------------------- ENDSET @V_ERR = @@ERRORIF @V_ERR 0BEGINRAISERROR('오류가 발생하였습니다.!!', 16, 1)RETURN @V_ERREND 마무리오류가 발생시 에러 내.. 2017. 7. 6.