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

데이터를 신규 입력하기 위한 INSERT 명령 실행 시 값에 오류가 있거나 이미 존재하는 데이터 때문에 기본키 중복 오류 등의 심각도가 높은 오류가 발생되면 더이상 SQL 명령어를 실행하지 못하고 중단된다. 이러한 문제들을 예방하는 방법으로 TRY CATCH문을 사용 CREATE TABLE #임시1 ( CODENVARCHAR(10) ,CNTNUMERIC(18, 0) ) BEGIN TRY -- 의도적으로 INSERT시 오류 발생(수량에 문자 입력) INSERT INTO #임시1(CODE, CNT) VALUES('A', '30A') SELECT 결과 = '성공처리' END TRY BEGIN CATCH --오류가 발생되면 처리 되는 문장 SELECT 결과= '오류발생' ,오류번호= @@ERROR ,오류오브젝트..

'CURSOR'는 DBMS의 자원을 비교적 많이 사용하고 속도가 느린 특성 있어 #임시테이블을 활용을 권장 한 건씩 읽어야할 데이터를 임시테이블에 저장하고 WHILE문으로 한 건씩 읽으면서 처리하는 방식 CREATE TABLE #TBL_WORK_1( CODE NVARCHAR(10) ,CNT NUMERIC(18, 0) ) INSERT INTO #TBL_WORK_1 VALUES('A1', 10), ('A2', 20), ('A3', 30) ------------------------------------------------------------------- -- 커서용테이블을 만들때 반드시 순번 컬럼이 필요하다(읽을 위치 관리를 위해) SELECT A.CODE , A.CNT ,ORDERS = IDENTITY..

반복문 저장된 문장을 여러 번 반복하여 실행하는 명령어 DECLARE @반복값 INT ,@누적값 INT SET @반복값 = 0 SET @누적값 = 0 WHILE (@반복값 BREAK, CONTINUE ※ BREAK : 반복을 중단하고 END 다음 명령 실행 DECLARE @반복값 INT ,@누적값 INT SET @반복값 = 0 SET @누적값 = 0 WHILE (@반복값 < 10) BEGIN SET @반복값 = @반복값 + 1 SET @누적값 = @누적값 + @반복값 -- 누적된 닶이 40이상 되면 더이상 반복..

조건문 체크한 결과가 '참(True)' 또는 '거짓(False)' 일 때 그에 맞는 각 업무 로직을 실행할 수 있도록 제어하는 명령어 IF문 가장 일반적이며 자주 사용되고 복잡한 조건까지 구현하기 형태의 명령어 독립적 사용 가능 복잡한 로직 구현 가능 DECLARE @IN_INT INT SET @IN_INT = 5 IF @IN_INT > 0 BEGIN SELECT '양수' END ELSE IF @IN_INT < 0 BEGIN SELECT '음수' END ELSE BEGIN SELECT '0' END - 조건에 따라 실행하는 문장이 하나의 문장이면 BEGIN ~ END 생략 가능 IF EXISTS (SELECT A.* FROM TBL_PRODUCT A WHERE A.CODE = 'A2') BEGIN SEL..

변수(Variable)는 시스템에 저장된 데이터나 사용자가 입력한 값을 읽어와서 편집 또는 계산하거나 사용자나 다른 명령에 값을 절달하기 위한 임시적인 저장 장소 1. 시스템 변수 - 시스템이 만든 변수 - 변수 앞에 [@@]가 붙고 이름변경이 안됨 - 시스템이 관리하는 현황이나 결과값을 보관함 (일반적으로 사용자가 강제로 값을 저장할 수 없음) - 별도 생성(선언) 하지 않고 바로 사용 - 예 : @@ERROR, @@ROWCONT, @@SPID 등 2. 사용자 변수 - 사용자가 만든 변수 - 변수명 앞에 [@]가 붙고 이름을 마음대로 부여가능 - 사용자가 원하는 값을 저장 - 사전 DECLARE 명령어로 변수 생성 후 사용 - 예 : @나이 INT -> [나이]라는 이름의 정수형 변수 -- 고정길이문자..

* SQL Server 2012 버전 부터 사용 가능 시퀀스는 많은 사용자가 동시에 순번을 제공받더라도 중복되지 않음 많은 사용자가 일시에 요청하는 경우를 대비하여 미리 일정 건수의 순번을 미리 채번하여 가지고 있다가 필요한 즉시 시퀀스 번호를 제공할 수 있도록 캐시(Cache)기능이 있기 때문에 동시에 여러 사용자가 채번 요청을 하더라도 대응할 수 있다. -- 시퀀스 생성 CREATE SEQUENCE 시퀀스10 AS BIGINT-- 데이터형 (생략시 BIGINT형) START WITH 0-- 최초시작값 (생략시 데이터형의 최소값) INCREMENT BY 1-- 다음증가값 (생략시 1) MINVALUE 0-- 최소값(생략시 데이터형의 최소값) MAXVALUE 5-- 최대값(생략시 데이터형의 최대값) CY..

[자주 활용하는 프로그래밍 기능] - 저장 프로시저(Stored Procedure) - 함수 (Function) - 시퀀스 (Sequence) [잘 활용되지 않는 프로그래밍 기능] - 데이터베이스 트리거 (Triger) - 어셈블리 (Assembly) - 유형 (Types) - 규칙 (Rules) - 기본값 (Defaults) 1. 프로그래밍 기능 설명 * 저장 프로시저 - 조회나 데이터 처리할 수 있는 공통로직을 개발 및 실행 - 함수에 비해 확장성이 높고 디버깅이 쉬움 - SELECT문 내에서 사용 불가(EXEC 명령으로 실행 가능) - 실행 : EXEC [프로시저명] * 함수 - 공통적인 계산, 조회 로직을 개발 및 실행 - 저장프로시저에 비해 사용 제안이 있음 - SELECT문 내에서 사용 가능함..
- Total
- Today
- Yesterday
- Linux
- MSSQL Server 기본에서 실무까지
- 스프링 부트 퀵스타트
- 배워서 바로 쓰는 스프링 부트 2
- JAVA 기본기 다지기 프로젝트
- 모든 웹을 위한 JavaScript jQuery 입문
- springboot
- MSSQL 기본에서 실무까지
- 스프링부트 퀵스타트
- Python
- 스타트 스피링 부트
- 스프링부트 퀵 스타트
- 모던 웹을 위한 JavaScript + jQuery 입문
- 프로시저
- Vue.js
- 강제 타입 변환
- 손에 잡히는 10분 SQL
- 스프링부트퀵스타트
- 스타트 스프링 부트
- MSSQL
- 리눅스
- 자바
- 처음 배우는 스프링 부트2
- JavaScript
- 모던 웹을 위한 JavaScript jQuery 입문
- 리액트를 다루는 기술
- 스프링부트 퀵스타터
- Java
- MS SQL 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 |