表锁定SQL Server 2会话

表锁定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

我对sql server上的表锁有疑问

例如,我有一个表:

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)