【发布时间】:2013-07-23 22:05:01
【问题描述】:
我正在尝试从我的数据库中选择代码,但在我有机会更新它们之前,我不需要其他人来选择相同的代码。我曾尝试仅使用 updlock,这解决了我的重复销售问题,但它增加了死锁问题。所以现在我正在使用 (UPDLOCK, READPAST),在我尝试在我的语句中使用 ORDER BY 之前,它工作得非常好。
微软 SQL 2005
BEGIN TRANSACTION
SELECT Top 10 ID FROM dbo.CODES
with (UPDLOCK, READPAST)
where ItemNo = 'type-2' AND Sold = 0
order by cast(NowStamp as DateTime) ASC
COMMIT TRANSACTION
我觉得我的问题将来自索引。
【问题讨论】:
-
当我尝试在事务中使用 ORDER BY 时,它会锁定整个表并且不允许运行相同的事务。
标签: sql sql-server-2005 sql-order-by