标签:style blog color io 使用 sp 数据 div on
1 --==============================事务=============================== 2 --简单的事务 3 --Messages:1 2 4 6 4 print 1 5 --事务开始 6 BEGIN TRAN 7 8 --插入一条数据 9 INSERT INTO 类别(类别名称) 10 VALUES (‘bbb‘) 11 IF(@@ERROR > 0 OR @@ROWCOUNT <> 1) --@@ERROR = 0代表正常,否则出错 12 GOTO TranRollBack 13 14 print 2 15 16 --插入一条数据 17 --已经有了aaa,会出错! 18 INSERT INTO 类别(类别名称) 19 VALUES (‘aaa‘) 20 IF(@@ERROR > 0 OR @@ROWCOUNT <> 1) 21 GOTO TranRollBack 22 23 PRINT 3 24 25 --插入一条数据 26 INSERT INTO 类别(类别名称) 27 VALUES (‘ccc‘) 28 29 IF(@@ERROR > 0) 30 BEGIN 31 TranRollBack: 32 PRINT 4 33 --回滚事务 34 ROLLBACK TRAN 35 END 36 ELSE 37 BEGIN 38 PRINT 5 39 --提交事务 40 COMMIT TRAN 41 END 42 43 print 6 44 45 --嵌套事务 46 --由于事务的原子性,事务内的所有语句要么全部执行,要么全部不执行,所以内层的COMMIT是没有意义的,仅仅是内层事务结束的标志 47 --内层事务若触发ROLLBACK,会回滚到外层事务之前的状态,而不是内层事务开始时的状态! 48 --82 rows 49 SELECT COUNT(1) FROM 产品 50 --开始事务 51 BEGIN TRAN 52 --插入一条数据 53 INSERT INTO 产品(产品名称,类别ID) VALUES(‘西瓜汁‘,1) 54 IF(@@ERROR > 0 OR @@ROWCOUNT <> 1) 55 GOTO TranRollback 56 --83 rows 57 SELECT COUNT(1) FROM 产品 58 --嵌套事务 59 BEGIN TRAN 60 --插入一条数据,会出错! 61 INSERT INTO 产品(产品ID) VALUES(1) 62 IF(@@ERROR > 0 OR @@ROWCOUNT <> 1) 63 BEGIN 64 ROLLBACK TRAN 65 END 66 ELSE 67 BEGIN 68 COMMIT TRAN 69 END 70 --82 rows 71 SELECT COUNT(1) FROM 产品 72 --再插入一条数据 73 INSERT INTO 产品(产品名称,类别ID) VALUES(‘可乐‘,1) 74 --83 rows 75 SELECT COUNT(1) FROM 产品 76 IF @@ERROR > 0 77 BEGIN 78 TranRollback: 79 ROLLBACK TRAN 80 END 81 ELSE 82 BEGIN 83 COMMIT TRAN 84 END 85 --83 rows 86 SELECT COUNT(1) FROM 产品 87 88 --事务保存点 89 --使用事务保存点,可以在内层事务回滚时只回滚到该内层事务的开始状态,从而可以实现有选择的回滚一部分 90 --82 rows 91 SELECT COUNT(1) FROM 产品 92 --开始事务 93 BEGIN TRAN 94 --插入一条数据 95 INSERT INTO 产品(产品名称,类别ID) VALUES(‘西瓜汁‘,1) 96 IF(@@ERROR > 0 OR @@ROWCOUNT <> 1) 97 GOTO TranRollback 98 --83 rows 99 SELECT COUNT(1) FROM 产品 100 --嵌套事务 101 --保存事务位置 102 SAVE TRAN 嵌套事务 103 BEGIN TRAN 104 --插入一条数据,会出错! 105 INSERT INTO 产品(产品ID) VALUES(1) 106 IF(@@ERROR > 0 OR @@ROWCOUNT <> 1) 107 BEGIN 108 ROLLBACK TRAN 嵌套事务 --此时要加上事务保存点的名称 109 END 110 ELSE 111 BEGIN 112 COMMIT TRAN 嵌套事务 --此时要加上事务保存点的名称 113 END 114 --83 rows 115 SELECT COUNT(1) FROM 产品 116 --再插入一条数据 117 INSERT INTO 产品(产品名称,类别ID) VALUES(‘可乐‘,1) 118 --84 rows 119 SELECT COUNT(1) FROM 产品 120 IF @@ERROR > 0 121 BEGIN 122 TranRollback: 123 ROLLBACK TRAN 124 END 125 ELSE 126 BEGIN 127 COMMIT TRAN 128 END 129 --84 rows 130 SELECT COUNT(1) FROM 产品
标签:style blog color io 使用 sp 数据 div on
原文地址:http://www.cnblogs.com/sky-sun/p/4045467.html