私は原子的に実行する必要がある一連のT-SQLクエリを持っています。 (以下を参照)...目的は、1人のユーザーが一度に1つの一意の行を検索し、他のユーザーが同じ行を同時に検索できないようにすることです。TABLOCKX対SERIALIZABLE
これまでのところ、私は2つの解決策を見てきました。 1)表ヒント(HOLDLOCK、TABLOCKX)及び2)トランザクション分離レベル(SERIALIZABLE)...
私の質問:
どのオプションが良いですか?
他にも優れたソリューションがありますか?この場合
DECLARE @recordId int;
SELECT @recordId = MIN([id])
FROM Exceptions
WHERE [status] = 'READY';
UPDATE Exceptions
SET [status] = 'PROCESSING',
[username] = @Username
WHERE [id] = @recordId;
SELECT *
FROM Exceptions
WHERE [id] = @recordId;