SQL Server:应用行锁定,排除已锁定的行

时间:2019-02-04 11:47:06

标签: sql-server database locks rowlocking

我将通过一个例子来说明我的情况。

我的表中有多行。我一个接一个地挑选。我需要锁定该行以进行处理。

示例代码如下

select top 1 * into #open_order from orders with (xlock) 
where status = 'open' order by order_time;

编辑:在查询中添加了order by子句。

我的要求是在并行连接中运行它。我的问题是,我无法在多个连接上并行运行此代码。第二个等待直到第一个提交事务。

是否可以从此选择查询中排除已经锁定的行?

我遇到了with(readpast)。但是我不知道它是否可以一起使用。

编辑:样本数据和期望值。

订单表数据:

id, order_time, status, remark 
1, 2019-01-01 00:00:01, 'open', 'Sample 1' 
2, 2019-01-02 00:00:01, 'open', 'Sample 2' 
3, 2019-01-03 00:00:01, 'open', 'Sample 1'

如果第一行被锁定,我希望得到第二行作为查询结果。

0 个答案:

没有答案