简单的SQLserver事务实例:
执行SQL 组合操作A、操作B,只有AB都执行成功时才提交事务,否则回滚事务。
测试数据表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
事务实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
/*创建事务的目的:用户在对数据进行操作时,
被修改的数据只是被暂存在缓冲区中,
只有被提交之后其他用户才能访问这部分数据*/
--创建事务,当前用户对数据的修改操作
--执行增、删、改数据的操作时,需要提交事务该部分数据才能生效被其他用户使用
UPDATE
STU_INFO S
SET
S.STU_SEX=
'女'
WHERE
S.STU_ID=
'180301'
;
UPDATE
STU_INFO S
SET
S.STU_SEX=
'男'
WHERE
S.STU_ID=
'180302'
;
DELETE
FROM
STU_INFO S
WHERE
S.STU_ID=
'180301'
;
INSERT
INTO
STU_INFO (STU_ID,STU_NAME,STU_CLASS,STU_SEX)
VALUES
(
'180307'
,
'甜甜'
,
'3'
,
'女'
);
--回滚事务
ROLLBACK
;
--提交事务
COMMIT
;
--创建事务的回滚点
SAVEPOINT OP1;
--创建还原点
UPDATE
STU_INFO S
SET
S.STU_NAME=
'操作一。数据被修改了'
WHERE
S.STU_ID=
'180301'
;
SAVEPOINT OP2;
UPDATE
STU_INFO S
SET
S.STU_NAME=
'操作二。数据被修改了'
WHERE
S.STU_ID=
'180302'
;
SAVEPOINT OP3;
UPDATE
STU_INFO S
SET
S.STU_NAME=
'操作三。数据被修改了'
WHERE
S.STU_ID=
'180303'
;
--回滚到OP1时所有被修改的数据都还原了
ROLLBACK
TO
OP1;
--回滚到OP2时数据1被修改,数据2/3还原
ROLLBACK
TO
OP2;
--回滚到OP3时数据1/2被修改,数据3还原
ROLLBACK
TO
OP3;
COMMIT
;
--提交事务
--注意:隐式提交,用户的影响表结构的行为发生时,系统默认直接提交事务