读书人

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

发布时间: 2012-09-06 10:37:01 作者: rapoo

请帮忙看一下使用保留点的回滚事务
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不是一样的吗?

读书人网 >SQL Server

热点推荐