表锁定SQL Server 2会话
我对sql server上的表锁有疑问 例如,我有一个表:表锁定SQL Server 2会话,sql,sql-server,tsql,locking,sql-server-2016,Sql,Sql Server,Tsql,Locking,Sql Server 2016,我对sql server上的表锁有疑问 例如,我有一个表: RowN RowText ---------------- 1 Row1 2 Row2 3 Row3 在会话1中,我需要更新表,特别是“行1”: 但是,在会话2中(因此另一个用户查询同一个表),我只希望看到会话1中未被更新锁定的记录: select * from table RowN RowText ---------------- 2 Row2 3 Row3
RowN RowText
----------------
1 Row1
2 Row2
3 Row3
在会话1中,我需要更新表,特别是“行1”:
但是,在会话2中(因此另一个用户查询同一个表),我只希望看到会话1中未被更新锁定的记录:
select * from table
RowN RowText
----------------
2 Row2
3 Row3
这是可能的吗
提前谢谢。我想您需要
readpass
提示:
select *
from test with(readpast)
它将跳过当前锁定的行。“我对sql server上的表锁有疑问。”您在这里到底怀疑什么?您似乎没有对表锁定的工作方式表达任何意见/疑问。我不得不问,但你为什么想要这种行为?如果运行了大量的
UPDATE
语句,则SELECT
语句可能会丢失大量数据。这可能是一个。好的,确切地说。。。这可能很困难…即使我在多行中有多个更新,或者对于表中的所有行,我也不想在会话2中锁定表的读取。
select *
from test with(readpast)