
CREATE PROCEDURE SP08_120_로또번호생성 AS BEGIN SET NOCOUNT ON; DECLARE @난수시작값INT = 1-- 난수생성범위 시작 DECLARE @난수종료값INT = 45-- 난수생성범위 종료 DECLARE @로또번호INT-- 난수발생값 CREATE TABLE #결과 ( 순번INT IDENTITY(1, 1), 로또번호INT ) DECLARE @순번 INT = 1 WHILE (@순번 IF EXISTS 조건문 사용 - ROUND(대상값, 자릿수, 기능값) -> 기능이 0이면 반올림, 0이 아니면 절사 - RAND() : 난수를 반환 (0초과 1미만의 소수점을 가진 숫자 반환) ※ 숫자 범위 내 난수 생성 방법(시작값 1, 종료값 10) 0.01 난수발생 -> ((10 + 1..

재귀호출 해당 함수 또는 테이블의 값을 다시 호출하면서 반복적으로 처리할 때 사용 시스템에서 반복할 수 있는 최대 횟수를 지정하는 것이 좋음 (생략하면 DB 기본값으로 설정되어 시스템 설정에 따라 오류가 발생될 수 있음) WHILE문으로 수행하는 방법보다 훨씬 빠른 속도를 기대할 수 있음 SET NOCOUNT ON; WITH Q AS (SELECT 순번 = 1, 합계 = 1 UNION ALL SELECT 순번 = 순번 + 2, 합계 = 합계 + (순번 + 2) FROM Q WHERE 순번 < 100 - 1 ) SELECT * FROM Q OPTION (MAXRECURSION 100) OPTION을 통해 재귀호출 최대 실행 횟수를 제한할 수 있음 (잘못 작성하면 무한반복할 수 있음) - MAXRECURSI..

SET NOCOUNT ON - INSERT, SELECT, UPDATE 등의 SQL문을 저장프로시저 등에서 실행하면 처리 건수를 클라이언트로 표시하거나 전달되어 예기치 않은 오류가 발생. SET NOCOUNT ON 옵션을 설정하면 결과를 만들면서 발생되는 적용 건수 등의 불필요한 데이터가 리턴되지 않는다. SET TRANSACION ISOLATION LEVEL READ UNCOMMITTED - 기본 트랜잭션 격리 수준은 [READ COMMITTED]모드로 다른 사용자가 데이터를 변경시 다른 사용자는 트랜잭션이 완료될 때까지 대기현상이 발생되어 시스템 속도가 매우 느리거나 오류가 발생 이러한 문제점을 해결하기 위해 다른 사용자가 변경 중인 데이터를 포함하여 대기 없이 읽을 수 있도록 설정하는 것 데이터의 ..

정적SQL와 동적SQL 장단점 비교 정적SQL 동적SQL [장점] - 동적SQL방식 보다 빠른 속도 : 정적 SP는 작성된 SQL문장에 대한 오류검사, 명령어에 대한 해석 등의 작업이 이미 수행되어 데이터베이스에 저장되어 있기 때문 [단점] - SP의 프로그래밍 라인수가 불필요하게 길어질 수 있음 [장점] - 확장성와 유연성 [단점] - 변수 사용하여 매번 변수에 저장되어 있는 SQL문장에 대해 오류검사와 명령어에 대한 해석 등의 작업이 수행되어 상대적으로 속도가 느림 [동적쿼리 예시] -- SP06_180_동적SQL ALTER PROCEDURE [dbo].[SP06_180_동적SQL] @IN_처리구분INT-- 1: DD집계 2:MM집계 3:YYYY집계 AS BEGIN -- 입시테이블 생성 CREATE ..

저장프로시저 - 자료를 입력, 수정, 삭제 등의 작업을 수행하는 프로시저 - 해당 작업이 성공하였는지 아니면 오류가 되었는지를 필히 체크되어야 함 - 결과를 전달받는 방법으로는 레코드셋 반환 방식, 출력변수 반환 방식이 있음 레코드셋 반환 방식 - 처리 결과를 SELECT의 실행 결과인 레코드셋으로 전달하는 방식 - 상대적으로 쉽고 간단하지만 향후 확장하기에는 몇 가지 불편한 문제가 있기 때문에 권장하지 않음 출력변수 반환 방식 - 실행 결과를 @변수에 저장하여 전달하는 방식 - 향수 확장되거나 유연한 프로그래밍 작업을 수행하기에는 더 유리 -- ============================================= -- Author:홍길동 -- Create date: 2020-07-29 --..

[조회 기본 SP 개발 산출물 예시] SP이름 SP06_110_제품_조회 -SP006 : 업무그룹 (SP06:SP기본) - 110 : 상세 프로그램번호 - 제품 : 프로그램(화면)이름 - 조회 : 상세기능 (예)조회, 처리, 수정 등 입력 변수 @IN_제품명 NVARCHAR(500) 처리 내용 1. 실습을 위해 임시테이블을 생성하고 제품자료를 INSERT 한다. 2. [@IN_제품명]을 입력받는다. 3. [TB_제품] 테이블의 자료를 조회 한다. 기존 입력된 전체 데이터를 조회 한다. 4. [TB_제품] 테이블의 자료를 조회 한다. 조회조건은 LIKE를 사용한다. 출력 변수 관리 하지 않음 * 관리하지 않더라도 RETURN값 0 발생 레코드셋 레코드셋1 : 제품코드, 제품명 (전체) 레코드셋2 : 제품코..

SELECT, INSERT, UPDATE 등의 일반 SQL 명령어가 순차적으로 호출되어야 하는 로직 * 일반 SQL 처리방식 - 각 명령별로 DBMS에 명령을 전송하고 처리된 결과를 다시 PC로 리턴 받는 과정을 반복적으로 거침 -> PC에 데이터를 전달하기 위해 매번 네트워크를 사용 -> 네트워크에 SQL코드가 노출로 인해 해커들의 표적이 될 가능성 있음 PC에 매번 데이터를 처리해야 하기 때문에 복잡도가 높음 * 내장 프로시저(SP) 처리방식 - 데이터베이스에 프로시저(SP)를 개발(순차적으로 호출되어야할 명령어 포함) -> 미리 컴파일되었기 때문에 상대적으로 속도 빠름 -> PC는 서버에 저장된 프로시저만 호출하고 데이터베이스가 내부적으로 처리후 결과만 제공할 수 있어 매우 단순해짐 -> 이름만 호..
- Total
- Today
- Yesterday
- Linux
- Java
- MSSQL 기본에서 실무까지
- 배워서 바로 쓰는 스프링 부트 2
- 리눅스
- MSSQL
- 모던 웹을 위한 JavaScript jQuery 입문
- 처음 배우는 스프링 부트2
- 스프링부트퀵스타트
- 스프링부트 퀵스타트
- 스프링 부트 퀵스타트
- 자바스크립트&제이쿼리
- springboot
- Python
- 스프링부트 퀵스타터
- 손에 잡히는 10분 SQL
- 모던 웹을 위한 JavaScript + jQuery 입문
- 리액트를 다루는 기술
- Vue.js
- 스프링부트 퀵 스타트
- 스타트 스프링 부트
- 강제 타입 변환
- 스타트 스피링 부트
- JavaScript
- 모든 웹을 위한 JavaScript jQuery 입문
- JAVA 기본기 다지기 프로젝트
- MS SQL Server 기본에서 실무까지
- 자바
- 프로시저
- MSSQL Server 기본에서 실무까지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |