【发布时间】:2020-02-13 21:08:18
【问题描述】:
您有一个 dbo.inventory 表,并且 itemsInStock 为 10。
假设您运行此查询:
begin tran
update dbo.inventory
set itemsInStock = 5
where ID = 1
select * from dbo.inventory
(并且您没有提交事务)
如果 SQL Server 尚未提交且默认隔离为已提交读,为什么它会读取 5?
【问题讨论】:
-
这是因为在同一个会话中,尝试在sql server 上打开一个新选项卡并运行
select * from dbo.inventory。不同的会话在提交之前不会看到数据。
标签: sql sql-server transactions isolation-level