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 UNCOMMITTED
。 Learn more here. 请注意,这会导致脏读。
有点。如果您设置了 READ COMMITTED SNAPSHOT 数据库设置,那么 READ COMMITTED 会话将不会被进行中的事务阻塞。但是他们会看到行的 "last-known-good" 版本,即当前事务开始之前的状态。
大卫
我查看了所有隔离类型。
但是我找不到我想要的模式
在交易过程中可以被其他交易读取。 但是,它不会添加更新和删除数据。
例如(伪代码):
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 UNCOMMITTED
。 Learn more here. 请注意,这会导致脏读。
有点。如果您设置了 READ COMMITTED SNAPSHOT 数据库设置,那么 READ COMMITTED 会话将不会被进行中的事务阻塞。但是他们会看到行的 "last-known-good" 版本,即当前事务开始之前的状态。
大卫