当前位置: 代码迷 >> Sql Server >> 请帮忙看一上使用保留点的回滚事务
  详细解决方案

请帮忙看一上使用保留点的回滚事务

热度:43   发布时间:2016-04-27 11:32:22.0
请帮忙看一下使用保留点的回滚事务
BEGIN TRANSACTION  
INSERT INTO 客户表
(客户编号,姓名,性别,年龄,住址,电话,电子邮件)
 VALUES
('20245','张三','男','46','北京','135000000',NULL)
SAVE TRANSACTION aa; //创建保留点aa
INSERT INTO 订单表
(订单编号,客户编号,订单金额,订货日期,备注) 
VALUES
('051867','20240','242.3','2012-02-28',NULL)  
ROLLBACK aa;
COMMIT 
GO
SELECT * FROM 客户表
SELECT * FROM 订单表


上面语句插入客户表的语句没有错,但插入订单表的时候,客户编号写错了,怎样使用保留点,只回滚插入订单表那个地方呢?插入客户表不撤销,帮我改一下
谢谢...


------解决方案--------------------
SQL code
BEGIN TRANSACTION   INSERT INTO 客户表(客户编号,姓名,性别,年龄,住址,电话,电子邮件) VALUES('20245','张三','男','46','北京','135000000',NULL)SAVE TRANSACTION aa-- //创建保留点aaINSERT INTO 订单表(订单编号,客户编号,订单金额,订货日期,备注)  VALUES('051867','20240','242.3','2012-02-28',NULL)   ROLLBACK TRANSACTION aaCOMMIT  TRANSACTIONGOSELECT * FROM 客户表SELECT * FROM 订单表
------解决方案--------------------
SQL code
ROLLBACK aa;--改成 ROLLBACK TRAN aa;
------解决方案--------------------
SQL code
BEGIN TRANSACTION   INSERT INTO 客户表(客户编号,姓名,性别,年龄,住址,电话,电子邮件) VALUES('20245','张三','男','46','北京','135000000',NULL)SAVE TRANSACTION aa; //创建保留点aa --这个地方设置了保留点INSERT INTO 订单表(订单编号,客户编号,订单金额,订货日期,备注)  VALUES('051867','20240','242.3','2012-02-28',NULL)   ROLLBACK  TRANSACTION aa; --此处回滚就会撤销保留点以后的操作,之前的插入操作保留COMMIT  TRANSACTIONGOSELECT * FROM 客户表SELECT * FROM 订单表
------解决方案--------------------
探讨
引用:

SQL code
ROLLBACK aa;--改成 ROLLBACK TRAN aa;


COMMIT和COMMIT TRANSACTION 和 COMMIT TRAN是一样的吧,

ROLLBACK和ROLLBACK TRANSACTION或ROLLBACK TRAN不是一样的吗?
  相关解决方案