블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

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

Category

Recent Post

Recent Comment

Archive

2009. 9. 18. 11:08 .Net Project/WindowServer2008
반응형

 use tempdb
Create Table dbo.TranTest
(
 Num Int Identity(1,1) Not Null Primary Key,
 Name VarChar(25) Not Null,
 PostDate SmallDateTime Default(GetDate())
)
Go

--샘플 데이터 입력
Insert Into TranTest(Name) Values ('홍길동'),('한라산'),('백두산')
Go

--출력
Select *From TranTest
Go


--[4] 트랜잭션 테스트(롤백) : Begin Tran ~ Rollback Tran
--[a] 트랜잭션 시작

Begin Tran

--[b] SQL 구문 실행
Delete TranTest Where Num = 2

--[c] 트랜잭션 롤백 : 트랜잭션 이전으로 상태 되돌리기(구문취소...)
RollBack Tran

-- [5] 트랜잭션 처리 :Begin Tran ~ Commit Tran
--에러가 발생하는 구문이 나오면 RooBack 하는 방식으로 사용  

Begin Tran
 Delete TranTest Where Num=2 --[5-1]성공
 Select aaa From aaa -- [5-2]실패 
 Delete TranTest Where Num =3 --[5-3] 실행되지 않는다

 If @@ERROR > 0
  RollBack Tran
Commit Tran


--[6] 트랜잭션 별칭 부여
Begin Tran DeleteData
 Delete TranTest Where Num = 3
 Select *From TranTest
RollBack Tran DeleteData

--[7] 다중 트랜잭션 처리
Begin Tran
 Delete TranTest Where Num = 6
 Begin Tran
  Delete TranTest Where Num = 7
  Select @@TRANCOUNT -- 2개
RollBack Tran --전체 트랜잭션을 되돌린다   
-- Commit Tran

--[8] 트랜잭션 단계 확인
Begin Tran
 Update TranTest Set Name = '트랜잭션1' Where Num = 8
 Begin Tran
 Update TranTest Set Name = '트랜잭션2' Where Num = 9
  Select @@TRANCOUNT --2개
RollBack Tran --전체 트랜잭션 되돌린다
--Commit Tran   

--[9] 트랜잭션의 주요 사용
Begin Tran
 Insert Into TranTest(Name) Values('홍길동')
 Update TranTest Set Name = '트랜잭션1' Where Num = 14
 
 Insert Into TranTest(Name) Values('홍길동')
 
 If @@ERROR > 0 --명시적으로 트랜잭션 되돌리기
 Begin 
  RollBack Tran
 End
Commit Tran   


반응형
posted by Magic_kit