SQL事务处理

=============================================================

标题:SQL事务处理

文献:《SQL必知必会》

日期:2011.4.22

姓名:朱铭雷

=============================================================

事务处理(transaction processing

可保证一组密切相关的SQL操作要么完全执行,要么完全不执行,以维护数据库的完整性。

示例(SQL Server)(Sams Teach Yourself SQL in 10 Minutes

BEGIN TRANSACTION

--1添加用户信息

INSERT INTO Customers(cust_id, cust_name)

VALUES('1000000010', 'Toys Emporium');

SAVE TRANSACTION StartOrder;

--2添加订单信息

INSERT INTO Orders(order_num, order_date, cust_id)

VALUES(20100, '2001-12-01', '1000000010');

IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;

--3添加订单物品信息(1

INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)

VALUES(20010, 1, 'BR01', 100, 5.49);

IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;

--4添加订单物品信息(2

INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)

VALUES(20010, 2, 'BR03', 100, 10.99);

IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;

COMMIT TRANSACTION

如果不使用事务处理,而执行到第2步时突然出现问题,导致1,2执行,而3,4未执行。那在数据库中就会出现只有订单信息,没有订单物品信息的空订单。使用事务处理,在2,3,4任意一步操作出现错误时,将回退到保存点StartOrder。这样数据库中则不会出现空订单。

回退(ROLLBACK

撤销指定的SQL语句,回到之前某个保留点,以恢复数据库到某个已知的安全状态。

保留点(SAVEPOINT

事务处理中设置的临时占位符(placeholder),用于事务回退。

可回退语句

可回退INSERTUPDATEDELETE语句,不可回退SELECTCREATEDROP语句(能够在事务处理中执行,但回退时,不被撤销)。

提交(COMMIT

将未存储的SQL语句结果写入数据库表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值