博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sql Server数据库实验之事务与锁
阅读量:3968 次
发布时间:2019-05-24

本文共 1487 字,大约阅读时间需要 4 分钟。

在这里插入图片描述

begin transaction graduateuse library1godelete from Reader where Rno='R05'delete from Borrow where Rno='R05'gocommit transaction graduategobegin transaction borrow1use library1godeclare @Bno nchar(10),@num float,@Borrnum int,@Rno nchar(10),@BorrowDate dateselect @BorrowDate=getdate()select @Rno=Rno from Reader where Rname='李伟'select @Borrnum=Borrnum from Borrow order by Borrnum +1select @Bno=Bno from Book where Btitle='数据结构'select @num=COUNT(Bno)from Borrow where Bno=@Bno and ReturnDate is nullif @num<5begininsert into Borrow(Borrnum,Rno,Bno,BorrowDate)values(@Borrnum,@Rno,@Bno,@BorrowDate)commit print'李伟可以借阅数据结构'endelsebeginrollback transactionprint'此书已经被借阅完'endgo

commit就是将数据库中的数据提交到回滚段中,会覆盖原先数据

rollback就是将回滚段中的数据回滚到数据库中,不会覆盖数据,不管先前有没有设置回滚点,rollback回滚的数据都不会变,除非commit覆盖了原先的数据

由第二题可以清楚地看出来

Read uncommitted

读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。可能会脏读。
Read committed
读提交,顾名思义,就是一个事务要等另一个事务提交后才能读取数据。
可能会不可重复读
Repeatable read
重复读,就是在开始读取数据(事务开启)时,不再允许修改操作
可能会幻读
Serializable 序列化
Serializable 是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。
设计的实验:在两个查询窗口中分别创建名称为
Trans1和trans2的事务,在trans1中先后设置不同的事务隔离级别,执行两次查询语句,在trans2的事务中执行更新语句,比较执行结果。

begin transaction trans1use library1goset transaction isolation level repeatable readselect *from Reader where Rname='王小明'waitfor delay'00:00:10';select *from Reader where Rname='王小明'gocommit transaction trans1gobegin transaction trans2use library1goupdate Reader set Rage=24 where Rname='王小明'gocommit transaction trans2go

转载地址:http://fvcki.baihongyu.com/

你可能感兴趣的文章
android 各式各样progress 进度条大全
查看>>
开发Google眼镜的app
查看>>
Android base-adapter-helper 源码分析与扩展
查看>>
Android 4.4从图库选择图片,获取图片路径并裁剪
查看>>
Android Fragment 你应该知道的一切
查看>>
使用AudioManager调节播放器音量的开发实例
查看>>
安卓开发者必备的42个链接
查看>>
Eclipse下Ant自动打包,混淆和签名
查看>>
linux环境下编译不成功
查看>>
Android WebView Long Press长按保存图片到手机
查看>>
BaseAnimation是基于开源的APP,致力于收集各种动画效果(最新版本1.3)
查看>>
TextView显示html图片点击图片放大等操作
查看>>
【Android】自定义控件让TextView的drawableLeft与文本一起居中显示
查看>>
Android Fragment getActivity返回null解决
查看>>
Android(视频、图片)加载和缓存类库Glide
查看>>
Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
查看>>
Android音频系统之AudioPolicyService
查看>>
Android系统Root与静默安装
查看>>
Android Property实现介绍
查看>>
Android SystemProperties设置/取得系统属性的用法总结
查看>>