《SQL Server 2000数据库》教学资源(PPT课件讲稿)第13章 事务与锁

第13章事务与锁 13.1事务 13.2锁
第13章 事务与锁 13.1 事务 13.2 锁

131事务 事务:是作为单个逻辑单元执行的一系列操 作,这一系列操作或者都被执行或者 都不被执行。 事务的属性 原子性:或者都被执行或者都不被执行 致性:事务完成时,所有数据保持一致 隔离性:不能看到事务的中间状态。 持久性:事务完成后对系统的影响是永久的
13.1 事务 一、事务:是作为单个逻辑单元执行的一系列操 作,这一系列操作或者都被执行或者 都不被执行。 二、事务的属性 原子性:或者都被执行或者都不被执行。 一致性:事务完成时,所有数据保持一致。 隔离性:不能看到事务的中间状态。 持久性:事务完成后对系统的影响是永久的

事务组织结构的一般形式 1、定义一个事务的开始 BEGIN TRANSACTION事务名 2、提交一个事务 COMMIT TRANSACTION事务名 3、回滚事务 ROLLABCK TRANSACTION事务名
三、事务组织结构的一般形式 1、定义一个事务的开始 BEGIN TRANSACTION 事务名 2、提交一个事务 COMMIT TRANSACTION 事务名 3、回滚事务 ROLLABCK TRANSACTION 事务名

例1:定义一事务向 Stucou表插入3条记录,并提交完成。 USE XK GO BEGIN TRANSACTION INSERT StuCou( StuNo, COuNo, WillOrder VALUES(0000253,001’,1) INSERT StuCou (StuNo, COuNo, Willorder) VALUES(000000253,”002,2 INSERT StuCou ( StuNo, COuNo, Willorder) VALUES(000000253,003,3) COMMIT TRANSACTION 测试: SELECT* FroM Stu Cou WHERE StuNo=00000025
例1:定义一事务向StuCou表插入3条记录,并提交完成。 USE Xk GO BEGIN TRANSACTION INSERT StuCou(StuNo,COuNo,WillOrder) VALUES ('00000025','001',1) INSERT StuCou(StuNo,COuNo,WillOrder) VALUES ('00000025','002',2) INSERT StuCou(StuNo,COuNo,WillOrder) VALUES ('00000025','003',3) COMMIT TRANSACTION 测试:SELECT * FROM StuCou WHERE StuNo='00000025

例2:定义一事务向 Stucou表插入3条记录,并回滚。 USE XK GO BEGIN TRANSACTION INSERT StuCou(StuNo, COuNo, Willorder) VALUES(00025,001’,1) INSERT StuCou(StuNo, COuNo, WillOrder) VALUES(025,”002,2) INSERT StuCou(StuNo, COuNo, WillOrder VALUES(000000253,”003,3) ROLLBACK TRANSACTION 测试: SELECT* froM StuCou WherE StuNo=20000025
例2:定义一事务向StuCou表插入3条记录,并回滚。 USE Xk GO BEGIN TRANSACTION INSERT StuCou(StuNo,COuNo,WillOrder) VALUES ('00000025','001',1) INSERT StuCou(StuNo,COuNo,WillOrder) VALUES ('00000025','002',2) INSERT StuCou(StuNo,COuNo,WillOrder) VALUES ('00000025','003',3) ROLLBACK TRANSACTION 测试:SELECT * FROM StuCou WHERE StuNo='00000025

例3、向 Stucou表插入多条记录,并检验若报名课程超过 4门,则回滚事务,即报名无效,否则成功提交。 USE XK BEGIN TRANSACTION 一报3或5门课程 INSERT StuCou(StuNo, COuNo, Willorder VALUES(00000253,”001’,1) INSERT StuCou(StuNo, COuNo, WillOrder VALUES(00000053,”002,2) NSerT StuCou(StuNo, COuNo, WillOrder VALUES(0000053,”003,3) INSERT StuCou(StuNo, COuNo, Willorder) VALUES(0000005,”004,4) INSERT StuCou ( StuNo, COuNo, Willorder
例3、向StuCou表插入多条记录,并检验若报名课程超过 4门,则回滚事务,即报名无效,否则成功提交。 USE Xk BEGIN TRANSACTION --报3或5门课程 INSERT StuCou(StuNo,COuNo,WillOrder) VALUES('00000025','001',1) INSERT StuCou(StuNo,COuNo,WillOrder) VALUES ('00000025','002',2) INSERT StuCou(StuNo,COuNo,WillOrder) VALUES ('00000025','003',3) --INSERT StuCou(StuNo,COuNo,WillOrder) VALUES ('00000025','004',4) --INSERT StuCou(StuNo,COuNo,WillOrder) VALUES ('00000025','005',5)

dEClaRE @CountNum INt Set QCount Num=(SELECT COUNT (*)FROM StuCou WHERE StuNO= 00000025 lf @CountNum>4 BEGIN ROLLBACK TRANSACTION PRINT’超过报名门数! END ELSE BEGIN COMMIT TRANSACTION PRINT报名成功! END
DECLARE @CountNum INT SET @CountNum= (SELECT COUNT(*) FROM StuCou WHERE StuNo='00000025') IF @CountNum>4 BEGIN ROLLBACK TRANSACTION PRINT '超过报名门数!' END ELSE BEGIN COMMIT TRANSACTION PRINT '报名成功!' END

例4、嵌套事务示例,只有在提交外部事务后,数据 修改才会生效。不能撤销最内层事务。 CREATE TABLE Test Tran (A INT, B CHAR (3)) GO BEGIN TRANSACTION Tranl INSERT INTO TestRan values(1,’aa’) GO BEGIN TRANSACTION Tran2 INSERT INTO TestRan values(2,’bbb’) GO BEGIN TRANSACTION Tran3 INSERT INTO TestTran values(3, ' ccc')
例4、嵌套事务示例,只有在提交外部事务后,数据 修改才会生效。不能撤销最内层事务。 CREATE TABLE TestTran (A INT, B CHAR(3)) GO BEGIN TRANSACTION Tran1 INSERT INTO TestTran VALUES (1, 'aaa') GO BEGIN TRANSACTION Tran2 INSERT INTO TestTran VALUES (2, 'bbb') GO BEGIN TRANSACTION Tran3 INSERT INTO TestTran VALUES (3, 'ccc')

提交事务 COMMIT TRANSACTiON Tran3 COMMIT TRANSACTION Tran COMMIT TRANSACTION Tran1 回滚事务 ROLLBACK TRANSACTION Tranl ROLLBACK TRANSACTION
--提交事务 COMMIT TRANSACTION Tran3 COMMIT TRANSACTION Tran2 COMMIT TRANSACTION Tran1 --回滚事务 ROLLBACK TRANSACTION Tran1 ROLLBACK TRANSACTION
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第12章 游标.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第11章 触发器.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第10章 存储过程.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第1章 SQL Server简介.ppt
- 《Excel与数据处理》课程教学资源(PPT课件讲稿)第2章 数据输入.ppt
- 《Excel与数据处理》课程教学资源(PPT课件讲稿)第11章 数据的安全与保护.ppt
- 《Excel与数据处理》课程教学资源(PPT课件讲稿)第10章 宏与VBA.ppt
- 《Excel与数据处理》课程教学资源(PPT课件讲稿)第1章 Excel基础.ppt
- 《Excel与数据处理》课程教学资源(PPT课件讲稿)课件说明.ppt
- 《Excel与数据处理》课程教学资源(PPT课件讲稿)第4章 公式.ppt
- 《Excel与数据处理》课程教学资源(PPT课件讲稿)第3章 格式化工作表.ppt
- 《数据结构及其应用(用面向对象方法与C++描述)》第5讲 递归(Recurve).ppt
- 《数据结构及其应用(用面向对象方法与C++描述)》第6章 树和森林.ppt
- 《数据结构及其应用(用面向对象方法与C++描述)》第四章 栈和队列.ppt
- 《数据结构及其应用(用面向对象方法与C++描述)》第一章 概述 第二章 线性表 第三章 链表.ppt
- 《数据结构》课程教学资源:第一讲 双向循环链表.ppt
- 清华大学:《算法分析与设计》课程教学讲义(双语版)Lecture 10 Numbe rtheoretic Algorithn.pdf
- 清华大学:《算法分析与设计》课程教学讲义(双语版)第九讲 Maximum flow 极大流.pdf
- 清华大学:《算法分析与设计》课程教学讲义(双语版)第七讲 图的基本算法.pdf
- 清华大学:《算法分析与设计》课程教学讲义(双语版)第六讲 分摊分析法.pdf
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第14章 安全管理.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第15章 数据库日常维护与管理.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第1章 SQL Server关系数据库简介.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第2章 Transact——SQL语言.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第3章 SQL语言编程.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第4章 数据库与事务日志.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第5章 表.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第6章 SQL Server权限管理.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第7章 索引及约束.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第8章 管理数据库其他对象.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第9章 视图.ppt
- 《SQL Server 2000数据库》教学资源(PPT课件讲稿)第5章 数据库设计基础.ppt
- 万博科技职业学院:《Visual Basic程序设计》第一章 Visual Basic程序设计概论.ppt
- 万博科技职业学院:《Visual Basic程序设计》第三章 用户界面设计.ppt
- 万博科技职业学院:《Visual Basic程序设计》第二章 Visual Basic语言基础.ppt
- 万博科技职业学院:《Visual Basic程序设计》第五章 菜单设计.ppt
- 万博科技职业学院:《Visual Basic程序设计》第四章 过程与变量的作用范围.ppt
- 万博科技职业学院:《Visual Basic程序设计》第六章 文件管理.ppt
- 万博科技职业学院:《Visual Basic程序设计》教学大纲.doc
- 万博科技职业学院:《Visual Basic程序设计》试题库.doc