课外天地 李树青学习天地数据库系统原理课件 → 事务隔离级别的练习


  共有21079人关注过本帖树形打印复制链接

主题:事务隔离级别的练习

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1945 积分:26736 威望:0 精华:34 注册:2003/12/30 16:34:32
事务隔离级别的练习  发帖心情 Post By:2006/5/22 21:43:48 [只看该作者]

可以同时打开两个查询分析器窗体模拟多个事务并发运行

练习1——未提交读 连接1 use students go

连接2 use students go

select * from stu where name='黎明' set transaction isolation level read uncommitted go

连接1 begin tran update stu set name='黎明' go

连接2 select * from stu where name='黎明'

连接1 rollback tran go

连接2 select * from stu where name='黎明'

练习2——提交读 连接1 use students go

连接2 use students go

select * from stu where name='黎明' set transaction isolation level read committed go

连接1 begin tran update stu set name='黎明' go

连接2 select * from stu where name='黎明'

连接1 rollback tran go

连接2 select * from stu where name='黎明'

练习3——有问题的提交读(两次读取的东西不一样)和可重复读 连接1 use students go

连接2 use students go update stu set name='JIM' set transaction isolation level read committed go

begin tran select * from stu where name='黎明' go

连接1 update stu set name='黎明' go

连接2 select * from stu where name='黎明' go commit tran go

----------可重复读----------- 连接2 set transaction isolation level repeatable read go

begin tran select * from stu where name='黎明' go

连接1 update stu set name='JIM' go

连接2 select * from stu where name='黎明' go

连接2 commit tran go select * from stu where name='黎明' select * from stu where name='JIM'

练习4——有问题的可重复读和可串行化 连接1 use students go

连接2 use students go set transaction isolation level repeatable read go begin tran select * from stu where name like '李%' go

连接1 insert stu values('000111','李树青',1,'1999-9-9',1.76)

连接2 select * from stu where name like '李%' go

----------串行化-----------(将新的插入记录删除) 连接2 commit tran set transaction isolation level serializable go

begin tran select * from stu where name like '李%' go

连接1 insert stu values('000111','李树青',1,'1999-9-9',1.76)

连接2 select * from stu where name like '李%' go

连接2 commit tran go

连接2 select * from stu where name like '李%' go


 回到顶部