以下的文章主要描述的是SQL Server 2005两种快照隔离机制的不同之处,总得来说,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')
建一个查询,这里故意不提交事务
- use SnapshotIsolationDemo
- begin tran
- update test set tname='version3' where tid=2
- select * from test
再建一个查询,模拟另外一个用户来访问
- use SnapshotIsolationDemo
- set transaction isolation level snapshot
- select * from test
清理工作
- use master
- drop database SnapshotIsolationDemo
- go
以上的相关内容就是对SQL Server 2005两种快照隔离机制的比较的介绍,望你能有所收获。
【编辑推荐】