आपको दौड़ की स्थिति मिल सकती है।
यह एक कथन में किया जा सकता है:
- आप एक अद्यतन में असाइन कर सकते हैं
- लॉक संकेत दूसरी प्रक्रिया को छोड़ने . की अनुमति देते हैं यह पंक्ति
- आउटपुट क्लॉज कॉलर को डेटा लौटाता है
इसे आज़माएं... (संपादित करें:होल्डलॉक हटा दिया गया)
Update TOP (1) ServerLoginUsers WITH (ROWLOCK, READPAST)
OUTPUT INSERTED.*
SET
AssignedTo = @User, AssignedToDate = getdate(), SourcePool = @UserPool
WHERE
AssignedTo is null and [TsServer] = @Server -- not needed -> and UserName = @ServerUser
यदि नहीं, तो आपको एक अलग चयन की आवश्यकता हो सकती है
Update TOP (1) ServerLoginUsers WITH (ROWLOCK, READPAST)
SET
-- yes, assign in an update
@ServerUser = UserName,
-- write
AssignedTo = @User, AssignedToDate = getdate(), SourcePool = @UserPool
OUTPUT INSERTED.*
WHERE
AssignedTo is null and [TsServer] = @Server -- not needed -> and UserName = @ServerUser
SELECT ...
इसे और अधिक के लिए देखें:SQL सर्वर प्रोसेस क्यू रेस कंडीशनए>