sql事务处理回滚及保留点transaction,ROLLBACK
 1![]() BEGIN TRANSACTION
BEGIN TRANSACTION
2![]() INSERT INTO Customers(cust_id,cust_name)
INSERT INTO Customers(cust_id,cust_name)
3![]() VALUES('100000010','Toys_Emporium');
VALUES('100000010','Toys_Emporium');
4![]() SAVE TRANSACTION  StartOrder;
SAVE TRANSACTION  StartOrder;
5![]() INSERT INTO Orders(order_num,order_date,cust_id)
INSERT INTO Orders(order_num,order_date,cust_id)
6![]() VALUES(20100,'2001/12/1','100000010');
VALUES(20100,'2001/12/1','100000010');
7![]() IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;
IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;
8![]() INSERT INTO OrderItems(order_num,order_item,prod_id,quantity,item_price)
INSERT INTO OrderItems(order_num,order_item,prod_id,quantity,item_price)
9![]() VALUES(20010,1,'BR01',100,5.49);
VALUES(20010,1,'BR01',100,5.49);
10![]() if @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;
if @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;
11![]() INSERT INTO OrderItems(order_num,order_item,prod_id,quantity,item_price)
INSERT INTO OrderItems(order_num,order_item,prod_id,quantity,item_price)
12![]() VALUES(20010,2,'BR03',100,10.49);
VALUES(20010,2,'BR03',100,10.49);
13![]() IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;
IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;
14![]() COMMIT TRANSACTION
COMMIT TRANSACTION
 BEGIN TRANSACTION
BEGIN TRANSACTION2
 INSERT INTO Customers(cust_id,cust_name)
INSERT INTO Customers(cust_id,cust_name)3
 VALUES('100000010','Toys_Emporium');
VALUES('100000010','Toys_Emporium');4
 SAVE TRANSACTION  StartOrder;
SAVE TRANSACTION  StartOrder;5
 INSERT INTO Orders(order_num,order_date,cust_id)
INSERT INTO Orders(order_num,order_date,cust_id)6
 VALUES(20100,'2001/12/1','100000010');
VALUES(20100,'2001/12/1','100000010');7
 IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;
IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;8
 INSERT INTO OrderItems(order_num,order_item,prod_id,quantity,item_price)
INSERT INTO OrderItems(order_num,order_item,prod_id,quantity,item_price)9
 VALUES(20010,1,'BR01',100,5.49);
VALUES(20010,1,'BR01',100,5.49);10
 if @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;
if @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;11
 INSERT INTO OrderItems(order_num,order_item,prod_id,quantity,item_price)
INSERT INTO OrderItems(order_num,order_item,prod_id,quantity,item_price)12
 VALUES(20010,2,'BR03',100,10.49);
VALUES(20010,2,'BR03',100,10.49);13
 IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;
IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;14
 COMMIT TRANSACTION
COMMIT TRANSACTION 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号