简单的SQLserver事务实例:
执行SQL 组合操作A、操作B,只有AB都执行成功时才提交事务,否则回滚事务。
测试数据表:
--1.数据表A CREATE TABLE A( A1 VARCHAR(10) ,A2 VARCHAR(10) ); INSERT INTO A(A1,A2) VALUES (‘00001‘,‘soulsjie‘); --2.数据表B CREATE TABLE B( B1 VARCHAR(10) ,B2 VARCHAR(100) ); INSERT INTO B(B1,B2) VALUES (‘6666‘,‘b0001‘); INSERT INTO B(B1,B2) VALUES (‘666‘,‘b0002‘);
事务实例:
--SQL server事务 BEGIN TRAN UpdateAandB --创建事务 DECLARE @AJIEGUO INT ,@BJIEGUO INT UPDATE A SET A1=‘12345678910‘; --操作A SET @AJIEGUO=@@ERROR; --操作A的执行状态码,0表示执行成功 UPDATE B SET B2=‘soulsjieT‘ --操作B SET @BJIEGUO=@@ERROR; --操作B的执行状态码,0表示执行成功 PRINT @BJIEGUO; IF(@AJIEGUO+@BJIEGUO=0) --只有操作A、操作B都成功执行时才提交事务 COMMIT TRAN UpdateAandB; ELSE ROLLBACK TRAN UpdateAandB;--操作A或操作B有任何一个执行失败时回滚事务
原文:https://www.cnblogs.com/soulsjie/p/10878499.html