【发布时间】:2014-05-05 09:41:54
【问题描述】:
我的应用程序中有以下工作流程:
线程 1 执行事务 1:
BEGIN TRANSACTION
UPDATE Items SET IsReady = 1 WHERE Id = 100
INSERT INTO ProcessorQueue (ItemId) VALUES (100)
COMMIT TRANSACTION
线程 2 轮询 ProcessorQueue 表以获取要处理的新行。因此,它创建事务 2,在其中选择队列行,如果找到,则从 Items 表中选择相应的项目状态 (IsReady)。
有时它显示 IsReady = 0。为什么?如何解决?
两个事务级别都已读取提交。
【问题讨论】:
标签: sql sql-server transactions isolation-level