मुझे एक एमएसएसक्ल डेटाबेस तालिका और समानांतर में एक ही तालिका तक पहुंचने वाली एक और 8 (समान) प्रक्रियाओं की आवश्यकता है - एक चयन शीर्ष एन बनाना, उन पंक्तियों को संसाधित करना, और अद्यतन करना उन पंक्तियों का स्तंभ। समस्या यह है कि मुझे केवल एक बार प्रत्येक पंक्ति का चयन और प्रक्रिया करने की आवश्यकता है। इसका मतलब यह है कि यदि एक प्रक्रिया डेटाबेस में पहुंच गई और शीर्ष एन पंक्तियों का चयन किया गया, तो दूसरी प्रक्रिया आने पर उन्हें उन पंक्तियों को बंद कर दिया जाना चाहिए और पंक्तियों को एन से 2 * एन पंक्तियों का चयन करना चाहिए, और इसी तरह ..."चयन शीर्ष एन" क्वेरी में अनलॉक पंक्तियों को वापस लौटें
क्या आप उन्हें चुनते समय कुछ पंक्तियों पर लॉक रखना संभव है, और जब कोई शीर्ष पंक्तियों को अनुरोध करता है जो अगली पंक्तियों को वापस करने के लिए बंद कर दिए जाते हैं, और लॉक वाले लोगों की प्रतीक्षा नहीं करते हैं? एक लंबे शॉट की तरह लगता है, लेकिन ...
एक और चीज जो मैं सोच रहा था - शायद इतना सुरुचिपूर्ण नहीं है लेकिन सरल और सुरक्षित लगता है, डेटाबेस में उस तालिका में चयन किए गए उदाहरणों के लिए काउंटर होना है। पहला उदाहरण जो काउंटर बढ़ाता है और शीर्ष एन का चयन करेगा, अगला वाला काउंटर बढ़ाएगा और एन * (i-1) से n * i तक पंक्तियों का चयन करेगा, और इसी तरह ...
क्या यह ध्वनि एक अच्छी ideea की तरह? क्या आपके पास कोई बेहतर सुझाव है? किसी भी विचार की अत्यधिक सराहना की है!
आपके समय के लिए धन्यवाद।
ऐसा लगता है जैसे आप एक कतार के रूप में एक टेबल का उपयोग कर रहे हैं? आपको [यह आलेख] मिल सकता है (http: // rusanu।कॉम/2010/03/26/उपयोग-टेबल-ए-कतार /) [रीमस Rusanu] द्वारा (http://stackoverflow.com/users/105929/remus-rusanu) उपयोगी। –
लिंक के लिए धन्यवाद। इसके बारे में जानना दिलचस्प था, लेकिन जब से मैं उन्हें चुनने के बाद पंक्तियों को रखने की जरूरत है (उन्हें हटाने का विकल्प नहीं है), यह मेरे मामले में वास्तव में सहायक नहीं है। – Diana
आपके पास 'संसाधित' बिट कॉलम हो सकता है और संभवतः 'DELETE' के लिए 'अद्यतन' को प्रतिस्थापित कर सकता है। यदि आप काउंटर समाधान का उपयोग करने का निर्णय लेते हैं [यह उत्तर] (http://stackoverflow.com/questions/3453411/sql-server-auto-incrementation-that-allows-update-statements/3462957#3462957) मदद कर सकता है। –