//MSSQL 동적쿼리(Dynamic Query)

동적쿼리는 최적의 SQL 문을 짠 쿼리를 문자열 변수에 담아 그 변수를 수행하는 것이다. 이렇게 되면 정적쿼리에 비해 장점이 조건절이 존재할 경우와 존재하지 않을 경우의 SQL 이 다르게 된다. 정적 쿼리도 인덱스가 달려있는 컬럼명에 대해서는 성능에 대한 이슈가 없을 수 있지만, LIKE '%찾을이름%' 와 같이 인덱스를 타지 못하는 검색 구문이 필요할 경우에는 다이나믹 쿼리가 성능이 더 높아질 수 있다. 다이나믹 쿼리의 예제를 활용해보자. SQL | Dynamic Query -- 동적 SQL 작성하기 DECLARE @sSQL VARCHAR(100) SELECT '''BWS''' SET @sSQL = 'SELECT * FROM USERTBL WHERE USER_ID = ' 'EJW'' ' EXEC (@s..

프로그래밍/MSSQL - 일반 | 2016. 12. 4. 00:48

MSSQL 스칼라반환함수 테이블반환함수

함수에 대한 기본적인 문법 틀을 작성하고, 개념까지 정리를 해본다. 기본적으로 스칼라반환함수는 Return 값이 단일값이고, 테이블반환함수는 테이블 형태의 값이 Return 된다고 볼 수 있다. 테이블 형태로 Return 이 된다는 것은 Row 단위의 List 형태가 Return 된다고 생각하면 될 것이다. 함수는 기본적으로 재사용을 높이기 위해 만들어졌다. 2개 이상의 프로그램에서 사용이 된다면 함수 1개의 수정으로 다수의 프로그램의 반환값이 바뀌기 때문이다. MSSQL 에서는 SP(Stored Procedure)에서 SELECT 하면 Return 값이 없음에도 조회가 된다. 또한, Global Temp 를 이용하면 Temp Table 에서 데이터를 계속 사용할 수 있어 테이블 반환 함수는 사용할 일이..

프로그래밍/MSSQL - 예제 | 2016. 12. 4. 00:46

--MSSQL 텍스트 컬러

이름 변경 키워드 색상 조합 키워드 SELECT / FROM 255, 187, 0 설명 주석 빨강 숫자 200 핑크 일반 텍스트 TB_~ / PR_~ 흰색 구문 오류 ~~~~~~~~~ 회색 SQL 연산자 := 134, 200, 253

프로그래밍/MSSQL - 일반 | 2016. 11. 26. 11:40

MSSQL 재귀적 CTE Inline View

MSSQL 에서 재귀쿼리를 사용하기 위해서는 inLineView 에 해당하는 WITH 절 구문을 이용하여 재귀쿼리를 작성해야 한다. 초보적인 관점에서 재귀의 사전적인 정의는 '자기 자신을 반복적으로 호출' 이라고 생각하면 된다. 재귀쿼리는 부모-자식 관계를 가지고 있는 데이터를 표현하기 위해서 사용하는 문법이다. 업무적으로 BOM 과 같은 Level 별 상관관계(FERT-HALB-ROH)와 같은 관계를 확실하게 가지고 있다면, while 보다는 재귀쿼리를 먼저 생각해보는 것이 바람직하다. 아래의 예제는 조직도의 구성을 재귀쿼리로 구현한 예제이다. SQL | 재귀적 CTE -- 재귀적 CTE INSERT INTO EMP_MST VALUES('나사장', NULL, NULL) INSERT INTO EMP_MS..

프로그래밍/MSSQL - 예제 | 2016. 11. 8. 00:05