SQL 服务器隔离级别问题

SQL Server Isolation Level issues

我查看了所有隔离类型。

但是我找不到我想要的模式

在交易过程中可以被其他交易读取。 但是,它不会添加更新和删除数据。

例如(伪代码):

create table abc
(id uniqueidentifier primary key)

Create proc procMain
trans isolation level **??????**
insert abc (id) values (newid())
Waiting 10 minute
commit

Create proc procREAD
select * from abc

Create proc procAdd
insert abc (id) values (newid())

create proc procUpdate
update abc id = newid()

create proc procDelete
delete from abc


now;
exec procMain (abc table access read only and for other access: LOCKED)

(waiting...)

exec procRead (OK) (Readable)
exec procAdd (NO - never) (locked)
exec procUpdate (NO - never) (locked)
exec procDelete (NO - never) (locked)

谢谢...

有这样的隔离级别吗? (事务隔离级别?)

您正在寻找 READ UNCOMMITTEDLearn more here. 请注意,这会导致脏读。

有点。如果您设置了 READ COMMITTED SNAPSHOT 数据库设置,那么 READ COMMITTED 会话将不会被进行中的事务阻塞。但是他们会看到行的 "last-known-good" 版本,即当前事务开始之前的状态。

大卫