1212事物模式 【例12-1】定义一个事务,向学生表中插入一条只包含学号、姓名和性别的记录。 use xg select次数=0,*from学生 检查当前表的内容 begin transaction insert into学生(学号,姓名,性别 )values(11010101,司武长男) save transaction label insert into学生(学号姓名,性别)yaue(11010101那佳佳女) select次数=1,*from学生 显示插入两条记录 rollback transaction label 回滚到事物保存点 select次数=2,*from学生 显示第1次插入的记录被撤销了 g rollback transaction select次数=3*fom学生 显示第2次插入的记录被撤销了
12.1.2 事物模式 【例12-1】定义一个事务,向学生表中插入一条只包含学号、姓名和性别的记录。 use jxgl go select 次数=0,* from 学生 --检查当前表的内容 go begin transaction insert into 学生(学号,姓名,性别)values('11010101','司武长','男') go save transaction label insert into 学生(学号,姓名,性别)values('11010101','那佳佳','女') select 次数=1,* from 学生 --显示插入两条记录 rollback transaction label --回滚到事物保存点 select 次数=2,* from 学生 --显示第1次插入的记录被撤销了 go rollback transaction select 次数=3,* from 学生 --显示第2次插入的记录被撤销了
1212事物模式 3.隐式事务 隐式事务是用 set implicit transactions on不明显地定义 事务开始,用 commit或ro‖back语句明显地定义事务 结束的事务。在隐式事务模式下,在当前事务提交或 回滚后, SQL Server自动开始下一个事务。主要事物 模式设置语句如下: (1)设置隐性事务开始模式: set implicit transactions on:启动隐性事务模式; set implicit transactions off:关闭隐性事务模式。 (2)设置隐性事务回滚模式: set xact abort on:当事务中任一条语句运行错误时, 整个事务将终止并整体回滚 set xact abort off:当事务中语句运行错误时,将终止 本条语句且只回滚本条语句
12.1.2 事物模式 3.隐式事务 隐式事务是用set implicit transactions on不明显地定义 事务开始,用commit或rollback语句明显地定义事务 结束的事务。在隐式事务模式下,在当前事务提交或 回滚后,SQL Server 自动开始下一个事务。主要事物 模式设置语句如下: (1)设置隐性事务开始模式: set implicit_transactions on:启动隐性事务模式; set implicit_transactions off:关闭隐性事务模式。 (2)设置隐性事务回滚模式: set xact_abort on:当事务中任一条语句运行错误时, 整个事务将终止并整体回滚; set xact_abort off:当事务中语句运行错误时,将终止 本条语句且只回滚本条语句
122并发访问 数据库是允许多用户同时使用的共享资源,当多 个事务并发访问(同时访问同一资源)时,若 不加控制就可能会彼此冲突,破坏了数据的完 整性和一致性,从而产生负面影响。 122.1并发概述 1222并发异常 1223并发调度
12.2 并发访问 数据库是允许多用户同时使用的共享资源,当多 个事务并发访问(同时访问同一资源)时,若 不加控制就可能会彼此冲突,破坏了数据的完 整性和一致性,从而产生负面影响。 12.2.1 并发概述 12.2.2 并发异常 12.2.3 并发调度
1221并发概述 如果事物是顺序执行的,即一个事物完成之后, 再开始另一个是事物,则称这种执行方式为串 行执行,如图12-1a所示;如果数据库管理系 统可以同时接收多个事物,并且这些事物在时 间上可以重叠执行,则称这种执行方式为并行 执行。在单CPU系统中,同一时间只能有一个 事物占据CPU。各事物交叉地使用CPU,这 种并发方式交叉并发。在多CPU系统中,多个 事物可以同时占据CPU,这种并发方式称为同 时并发,如图12-1b所示。在没有特殊说明的 情况下,并发访问只考虑单CPU系统中的交叉 并发的情况
12.2.1 并发概述 如果事物是顺序执行的,即一个事物完成之后, 再开始另一个是事物,则称这种执行方式为串 行执行,如图12-1a所示;如果数据库管理系 统可以同时接收多个事物,并且这些事物在时 间上可以重叠执行,则称这种执行方式为并行 执行。在单CPU系统中,同一时间只能有一个 事物占据CPU。各事物交叉地使用CPU,这 种并发方式交叉并发。在多CPU系统中,多个 事物可以同时占据CPU,这种并发方式称为同 时并发,如图12-1b所示。在没有特殊说明的 情况下,并发访问只考虑单CPU系统中的交叉 并发的情况
1221并发概述 时间 间T1T2T3 T2 a)串行执行 b)交叉并行执行 图12-1多个事物的执行情况
12.2.1 并发概述 a)串行执行 b)交叉并行执行 图12-1 多个事物的执行情况