データベースからコードを選択しようとしていますが、別の人が来て同じコードを選択する必要はありません。私は 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
私の問題はインデックスから来ているように感じます。