SQL SERVERで、トランザクション内のSELECTステートメントで行をロックすることは可能ですか? 行をロックしたいので、外部からの他のトランザクションはその行に到達できません。
トランザクションがコミットまたはロールバックされた後、行を解放する必要があります。これが私が意味することです...
BEGIN TRANSACTION TRAN1
SELECT * FROM HR.Employees WITH (UPDLOCK) WHERE empid=1
...
...
...
...
COMMIT TRANSACTION
誰か提案がありますか?行をロックするには、UPDATE ステートメントを実行する必要がありますか?
この質問を重複としてマークしないでください。UPDATEステートメントについて尋ねているのではなく、SELECTについて尋ねているからです
編集:「SET TRANSACTION ISOLATION LEVEL SERIALIZABLE」を試みましたが、ロックが多すぎます。私の SP は巨大で、多くの SELECT ステートメントがあります。「SET TRANSACTION ISOLATION LEVEL SERIALIZABLE」は、SP 内のすべての SELECT からの行をロックします。ただし、1 つのテーブルの行のみをロックしたいと考えています。