BEGIN TRAN
SELECT 1
FROM Table
WITH (XLOCK, ROWLOCK)
COMMIT TRAN
वह चाल चलेगा।
संपादित करें
जैसा कि दूसरों ने बताया है, आप पढ़ने के लिए एक पंक्ति को लॉक नहीं कर सकते हैं . मुझे ऐसा करने का एकमात्र तरीका इस प्रकार है:
WITH (UPDLOCK, TABLOCK)
और यह माना जा रहा है कि एक WITH (NOLOCK) का उपयोग कभी भी SELECT स्टेटमेंट में नहीं किया जाता है (जिसे वैसे भी टाला जाना चाहिए)।
मैंने इसका परीक्षण किया और यह काम करेगा, हालांकि टैबलेट का उपयोग केवल चरम मामलों में ही किया जाना चाहिए। निश्चित रूप से यदि समेकन की आवश्यकता है, तो यह एक खराब समाधान है और लॉकिंग के किसी अन्य रूप की आवश्यकता होगी। एक तरीका यह है कि थोड़ा कॉलम "उपलब्ध सही/गलत" अपडेट किया जाए और केवल उन पंक्तियों को पढ़ा जाए जहां उपलब्ध =सही है। जैसा कि @gbn ने सुझाव दिया था, READPAST कर सकता था इसके साथ प्रयोग करें।