본문 바로가기

Database/MS-SQL

데이터베이스 트렌젝션 TRAN 예제

반응형






--///////////////////  트랜젝션 연습      ///////////////////////
CREATE TABLE #tranTest -- # 이나 ## 이면 임시 테이블을 말함
(
id INT NOT NULL,
msg NVARCHAR(2) NOT NULL
)
USE tempdb --임시페이블사용
--EXEC sp_help #tranTest

--ALTER TABLE #tranTest
-- DROP CONSTRAINT PK__#tranTest_________29221CFB
DECLARE @i INT                    --- 데이터 삽입절
SET @i = 1 --- 데이터 삽입절
WHILE @i < 120 --- 데이터 삽입절
BEGIN --- 데이터 삽입절
INSERT INTO #tranTest (id, msg) --- 데이터 삽입절
VALUES (@i, 'AA') --- 데이터 삽입절
SET @i = @i + 1
--- 데이터 삽입절
END

SELECT * FROM #tranTest

BEGIN TRAN --- 1번트랜잭션
UPDATE #tranTest SET id = 111;  -- 임시테이블의 아이디값을 111로 바꾼다
SAVE TRAN [tranPoint1]
BEGIN TRAN -- 2번트랜잭션 
UPDATE #tranTest SET id = 222; -- 아이디값을 222로 바꾼다
SELECT * FROM #tranTest
ROLLBACK TRAN [tranPoint1] -- 첫번째롤백  tranPoint111 로 롤빽한다
SELECT * FROM #tranTest
ROLLBACK TRAN -- 두번째롤백
SELECT * FROM #tranTest

--////////////// 트랜젝션은 중복 가능하고   중간에 삽입 가능하다  /////////////