例子:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN TRANSACTION;
SELECT *
FROM User2
下面是MSDN对他们的比较。
属性
|
已提交读快照隔离级别
|
快照隔离级别
|
必须设置为
ON
以便启用所需支持的数据库选项。
|
READ_COMMITTED_SNAPSHOT
|
ALLOW_SNAPSHOT_ISOLATION
|
会话如何请求特定类型的行版本控制。
|
使用默认的已提交读隔离级别,或运行
SET TRANSACTION ISOLATION LEVEL
语句来指定
READ COMMITTED
隔离级别。这可以在事务启动后完成。
|
需要执行
SET TRANSACTION ISOLATION LEVEL
来在事务启动前指定
SNAPSHOT
隔离级别。
|
由语句读取的数据的版本。
|
在每条语句启动前提交的所有数据。
|
在每个事务启动前提交的所有数据。
|
如何处理更新。
|
从行版本恢复到实际的数据,以选择要更新的行并使用选择的数据行上的更新锁。获取要修改的实际数据行上的排他锁。没有更新冲突检测。
|
使用行版本选择要更新的行。尝试获取要修改的实际数据行上的排他锁,如果数据已被其他事务修改,则出现更新冲突,同时快照事务也将终止。
|
有更新冲突检测。
|
无。
|
集成支持。无法禁用。
|
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。