码迷,mamicode.com
首页 > 其他好文 > 详细

019.事务

时间:2017-01-20 22:07:31      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:开始   撤销   独立   如何   name   其他   lan   arc   value   

事务是啥?
TRANSACTION
是单个逻辑单元,可以执行一系列操作.
这些操作作为一个整体一起向系统提交,要么都执行,要么都不执行.
事务是一个不可分割的逻辑单元.
CREATE TABLE BANL
(
CARID varchar(10),
NAME VARCHAR(20),
BALANCE MONEY CHECK(BALANCE>1)
)
INSERT INTO BANL VALUES
(‘C001‘,‘张三‘,1000),
(‘C002‘,‘李四‘,2000)
--使用事务模拟转账
--开始事务
BEGIN TRANSACTION--执行操作(2个update)
DECLARE @ERR INT=0
UPDATE BANL SET balance-=1000 WHERE carid=‘c001‘
SET @ERR+=@@ERROR
UPDATE BANL SET balance+=1000 WHERE carid=‘c002‘
SET @ERR+=@@ERROR
--事务的结束
IF(@ERR=0)
--1.提交
BEGIN
COMMIT TRANSACTION--永久的将数据文件记录到硬盘中
PRINT ‘转帐成功‘
END
ELSE
BEGIN
--2.回滚(撤销)
ROLLBACK TRANSACTION
PRINT ‘转账失败‘
END
SELECT * FROM BANL

二.事务语法:
开始事务
BEGIN TRANSACTION
结束事务
COMMIT 提交
ROLLBACK 回滚

三.事务的分类:
1.显示事务(使用最多的)
特点:事务开始,结束都是用户手动控制

SELECT * FROM EMP
BEGIN TRANSACTION
DELETE FROM EMP
ROLLBACK
--什么是数据的并发访问?
多个用户同时访问相同的数据
--数据库的措施,如何解决的数据并发访问?
--锁:事务操作中的数据会被加锁(修改锁(增删改))
--排他锁(防止其他用户对当前事务锁定的数据)
--进行[增删改]操作
--其他用户要排队等待waiting
--释放锁:事务结束,锁就会被释放

--事务的隔离级别:
-- 默认级别:拒绝脏读级别(帮助)
-- 脏读:读取正在被别人操作(锁定)的数据

2.自动提交模式

特点:认为每一条sql都是一个独立的事务,如果执行成功,系统自动提交,出错系统自动回滚并提示错误
DELETE FROM EMP WHERE EMPNO=7369

3.隐性事务模式(了解)
特点:事务的开始时自动的(sql)
结束是手动的(commit,rollback)
set implicit transaction on|off

事务的四个特性:
原子性
一致性
隔离性

019.事务

标签:开始   撤销   独立   如何   name   其他   lan   arc   value   

原文地址:http://www.cnblogs.com/harveylv/p/6327004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!