相关疑难解决方法(0)

为什么在另一个事务的事务隔离级别可以使用非冲突过滤器进行序列化时插入TSQL语句块?

可序列化的事务隔离级别通过阻止对事务中与任何其他事务中的任何select语句冲突的表的任何插入来避免幻像读取的问题.我试图用一个例子来理解它,但即使select语句中的过滤器没有冲突,它也会阻塞插入.我会很感激为什么它以这种方式行事的任何解释.

表脚本

CREATE TABLE [dbo].[dummy](
    [firstname] [char](20) NULL,
    [lastname] [char](20) NULL
) ON [PRIMARY]

GO
Run Code Online (Sandbox Code Playgroud)

会议 - 1

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
begin tran
select * from dummy where firstname = 'abc'
Run Code Online (Sandbox Code Playgroud)

会议 - 2

insert into dummy values('lmn', 'lmn') -- Why this blocks?
Run Code Online (Sandbox Code Playgroud)

sql-server isolation-level

5
推荐指数
1
解决办法
4654
查看次数

标签 统计

isolation-level ×1

sql-server ×1