SET TRANSACTION READ WRITE和READ COMMITTED的区别

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 13:38:17
SET TRANSACTION READ WRITE和READ COMMITTED的区别

SET TRANSACTION READ WRITE和READ COMMITTED的区别
SET TRANSACTION READ WRITE和READ COMMITTED的区别

SET TRANSACTION READ WRITE和READ COMMITTED的区别
SET TRANSACTION ISOLATION LEVEL (Transact-SQL)
READ COMMITTED
控制到 SQL Server 的连接发出的 Transact-SQL 语句的锁定行为和行版本控制行为.
指定语句不能读取已由其他事务修改但尚未提交的数据.这样可以避免脏读.其他事务可以在当前事务的各个语句之间更改数据,从而产生不可重复读取和幻像数据.该选项是 SQL Server 的默认设置.
READ COMMITTED 的行为取决于 READ_COMMITTED_SNAPSHOT 数据库选项的设置:
如果将 READ_COMMITTED_SNAPSHOT 设置为 OFF(默认设置),则数据库引擎 会使用共享锁防止其他事务在当前事务执行读取操作期间修改行.共享锁还会阻止语句在其他事务完成之前读取由这些事务修改的行.语句完成后便会释放共享锁.
如果将 READ_COMMITTED_SNAPSHOT 设置为 ON,则数据库引擎 会使用行版本控制为每个语句提供一个在事务上一致的数据快照,因为该数据在语句开始时就存在.不使用锁来防止其他事务更新数据.