关于sql server中事务的一点小问题 20inthewinterc]

发布时间:2016-12-7 3:49:26 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"关于sql server中事务的一点小问题 20inthewinterc]",主要涉及到关于sql server中事务的一点小问题 20inthewinterc]方面的内容,对于关于sql server中事务的一点小问题 20inthewinterc]感兴趣的同学可以参考一下。

如果 有两个有用户各自启动了事务A和事务B,:A事务执行一条语句,从C表查询数据,B事务也执行一条语句,向C表插入数据 。 A事务先启动,在A事务还没有执行完成时B事务启动了,并且B事务先于A事务完成结束 。那么,当A事务完成 结束时,启动A事务的用户所看到的员工信息是B事务完成前的数据,还是B事务完成后的数据?

完成后的数据

B事务执行完,已经commit了 那么不管A事务是否正确执行 数据已经insert到表里了饿

引用楼主 inthewinterc 的回复:如果 有两个有用户各自启动了事务A和事务B,:A事务执行一条语句,从C表查询数据,B事务也执行一条语句,向C表插入数据 。 A事务先启动,在A事务还没有执行完成时B事务启动了,并且B事务先于A事务完成结束 。那么,当A事务完成 结束时,启动A事务的用户所看到的员工信息是B事务完成前的数据,还是B事务完成后的数据? 这个还你的事务隔离级别有关系

事务用于保证数据的完整性 如果读出整个表,读出的过程中B事务正在更新或插入记录,此时表会加锁,在B事务提交之前,A事务的数据不可能被取出.最后读出的结果是B事务更新后的数据. 但一般情况下,是A事务数据已读出,但未提交,此时B事务更新数据,不可能影响已读出的数据. A事务要保证读出的数据不未提交之前不被修改,就要用到可重复读的数据隔离级别或锁,如要保证表数据不被插入,应用最高事务隔离级别或排它锁.设为排它锁之后,A事务未提交,B事务应不可能插入数据.如A事务一直不提交,就会造成B事务死锁.

上一篇:[推荐] ------------------我的一些笔记(四)(硬件管理和配置)(基于2005)------------------- 20fredrickhu]
下一篇:sql server 2008报表服务器问题 20alan_lau]

相关文章

相关评论