SQL Server 2005两种快照隔离机制的不同之处


  本文标签:SQL Server 2005

  以下的文章主要描述的是SQL Server 2005两种快照隔离机制的不同之处,总得来说,READ_COMMITTED_SNAPSHOT相对而言肯其比较适合于原有数据库设计得相对复杂,不想做太多更改的情况下  。

  它不需要去修改以前的存储过程  。这其实是READ_COMMITTED隔离级别的一个改良版本  。

  而另外一个SNAPSHOT则是一个全新的隔离级别  。

  下面是我用第二种方式的一个例子

  创建演示用的数据库

  1. create database SnapshotIsolationDemo  
  2. go  
  3. use SnapshotIsolationDemo  
  4. alter database SnapshotIsolationDemo set allow_snapshot_isolation on  
  5. create table test  
  6. ( tid int not null primary key,  
  7.   tname varchar(50) not null  
  8. )  
  9. insert into test values(1,version1)  
  10. insert into test values(2,version2) 

  

  建一个查询,这里故意不提交事务

  

  1. use SnapshotIsolationDemo  
  2. begin tran  
  3. update test set tname=version3 where tid=2 
  4. select * from test 

  再建一个查询,模拟另外一个用户来访问

  1. use SnapshotIsolationDemo  
  2. set transaction isolation level snapshot  
  3. select * from test 

  清理工作

  1. use master  
  2. drop database SnapshotIsolationDemo  
  3. go 

  以上的相关内容就是对SQL Server 2005两种快照隔离机制的比较的介绍,望你能有所收获  。