总得来说,READ_COMMITTED_SNAPSHOT可能比较适合于原有数据库设计得相对复杂,不想做太多更改的情况下。它不需要去修改以前的存储过程。这其实是READ_COMMITTED隔离级别的一个改良版本。 而另外一个SNAPSHOT则是一个全新的隔离级别。 下面是我用第二种方式的一个例子 --创建演示用的数据库 create database SnapshotIsolationDemo go use SnapshotIsolationDemo alter database SnapshotIsolationDemo set allow_snapshot_isolation on create table test ( tid int not null primary key, tname varchar(50) not null ) insert into test values(1, version1 ) insert into test values(2, version2 ) --建一个查询,这里故意不提交事务百考试题-全国最大教育类网站(www.Examda。com) use SnapshotIsolationDemo begin tran 0update test set tname= version3 where tid=2 0select * from test --再建一个查询,模拟另外一个用户来访问来源:www.100test.com use SnapshotIsolationDemo set transaction isolation level snapshot 0select * from test --清理工作 use master 0drop database SnapshotIsolationDemo go