반응형
반응형
RAISERROR 오류 메시지를 생성하고 세션에 대한 오류 처리를 시작 사용자 정의 메시지를 참조하거나 동적으로 메시지를 작성 오류 메시지 반환 호출하는 애플리케이션 새 애플리케이션에서는 THROW를 대신 사용 연결된 TRY/CATCH 구문의 CATCH 블록에 서버 오류 메시지로 반환 구문 Error Message 사용자에게 보여줄 메시지 메시지는 작은 따옴표 안에 감싸야 하며, 큰 따옴표는 인식하지 않음 Severity 지정 할 심각도 수준 0 ~ 25까지 수준을 지정 0 ~ 10 : 작은 심각도, 알림 메시지 발생 11 ~ 18 : 사용자 정의 심각도, 오류 메시지 발생 19 ~ 25 : 치명적인 심각도, WITH LOG 옵션이 필요, 클라이언트 연결이 종료되고 오류 로그에 오류가 기록 State 상..
SAVE TRANSACTION 트랜잭션 내에서 사용 가능 특정 구간에 세이브 포인트 생성 전부 롤백이 아닌 지정한 구간으로 롤백 할 수 있게 하는 기능 구문 SAVE 세이브포인트명 세이브포인트명으로 해당 구간 롤백 사용 예시 1. 세이브포인트를 두개 지정해보고, 2. 첫번째 세이브 포인트로 롤백하고, 3. 커밋해보기 -- table info : id(1), name('puppy'), age(4) select * from MyPet where id = '1' -- age = 4 BEGIN TRAN update MyPet set age = '1' where id = '1' -- create savePoint1 SAVE TRAN savePoint1 -- 1 select * from MyPet where id ..
이 포스팅은 MSSQL을 기준으로 작성되었습니다. 트랜잭션에 대한 자세한 설명은 아래의 포스팅을 참고해주세요. https://luvris2.tistory.com/387 MSSQL - 트랜잭션의 개념 이해와 종류, 사용 방법 트랜잭션이란? (Transaction) 데이터베이스 관리 시스템에서 상호작용의 단위 하나의 논리적 작업 단위로 수행되는 일련의 작업 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 luvris2.tistory.com @@TRANCOUNT 트랜잭션의 중첩된 수를 나타내주는 시스템 변수 트랜잭션이 실행되지 않을 경우 0을 반환 트랜잭션의 중첩수에 따라 수를 반환 중첩 트랜잭션은 권장하지 않지만, 해당 시스템 변수를 이용하여 트랜잭션이 실행중인지를 확인하기에 유용 트랜잭션 ..
해당 포스팅은 MSSQL을 기준으로 작성하였습니다. 오라클과는 다를 수 있습니다. 트랜잭션이란? (Transaction) 데이터베이스 관리 시스템에서 상호작용의 단위 하나의 논리적 작업 단위로 수행되는 일련의 작업 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미 이론적으로 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영구성(Durability)을 보장 (ACID) 원자성 : 더 이상 분류 할 수 없는 작업이여야 함 일관성 : 모든 데이터는 일관되어야 함 독립성 : 다른 트랜잭션에 의한 수정과 독립되어야 함 트랜잭션이 종료 전까지는 다른 트랜잭션에서 해당 트랜잭션의 데이터를 볼 수 없음 영구성 : 트랜잭션이 완료되면 영구적으로 시스..
해당 포스팅은 MSSQL을 기준으로 작성하였습니다. 오라클과는 다를 수 있습니다. 트랜잭션에 대한 자세한 설명의 아래의 포스팅을 참고해주세요. https://luvris2.tistory.com/387 MSSQL - 트랜잭션의 개념 이해와 종류, 사용 방법 트랜잭션이란? (Transaction) 데이터베이스 관리 시스템에서 상호작용의 단위 하나의 논리적 작업 단위로 수행되는 일련의 작업 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 luvris2.tistory.com SET IMPLICIT_TRANSACTIONS란? 트랜잭션의 옵션 BEGIN TRAN을 붙이지 않아도 자동으로 커밋되지 않고 사용자가 커밋을해야만 커밋이 됨 즉, 시스템 트랜잭션의 커밋을 사용자가 컨트롤 할 수 있음 해당 옵..
INPUT : 입력 매개변수 변수 선언시 디폴트 값 입력한 값을 프로시저 내에서 사용 할 수 있게 해주는 변수 입력 매개변수 구문 기존의 프로시저 생성 구문과 같음 IN 키워드를 생략해도 기본 값은 IN이기 때문에 상관 없음 CREATE PROCEDURE -- 프로시저명 -- @매개변수 데이터타입 IN AS BEGIN -- SQL문 END 입력 매개변수 사용 예시 이름이 사라인 애완동물의 나이 확인하기 이름 : 입력 매개변수 (inVar) 나이 : 쿼리 실행 결과 (select ~) -- 기본 테이블 정보 확인 select * from MyPet -- 프로시저 생성 CREATE PROC inVarTest -- 입력 매개변수 선언, 사용자로부터 값을 입력 받는 변수, IN 생략 가능 @inVar nvarc..