में सबसे छोटा अप्रयुक्त नंबर खोजें SQL सर्वर कॉलम में सबसे छोटा अप्रयुक्त नंबर आपको कैसे मिलता है?SQL सर्वर
मैं Excel से SQL सर्वर तालिका में मैन्युअल रूप से रिकॉर्ड किए गए रिकॉर्ड की बड़ी संख्या आयात करने जा रहा हूं। उनके पास एक संख्यात्मक आईडी (जिसे दस्तावेज़ संख्या कहा जाता है) है, लेकिन उन्हें उन कारणों के लिए अनुक्रमिक रूप से असाइन नहीं किया गया था जो अब लागू नहीं होते हैं, जिसका अर्थ है कि जब मेरी वेबसाइट एक नया रिकॉर्ड रिकॉर्ड करती है, तो इसे इसे सबसे छोटा संभव दस्तावेज़ संख्या असाइन करने की आवश्यकता होती है (शून्य से अधिक) जो पहले से ही नहीं लिया गया है।
क्या सादा एसक्यूएल के माध्यम से ऐसा करने का कोई तरीका है या यह टीएसक्यूएल/कोड के लिए एक समस्या है?
धन्यवाद! संगामिति के मुद्दे को उठाने के लिए WW को
संपादित
विशेष धन्यवाद। यह देखते हुए कि यह एक वेब ऐप है, यह परिभाषा द्वारा बहु-थ्रेडेड है और किसी भी समस्या का सामना करने वाले किसी भी व्यक्ति को किसी भी समस्या को रोकने के लिए कोड या डीबी स्तर लॉक पर विचार करना चाहिए।
LINQ
FYI करें - यह निम्न कोड के साथ LINQ के माध्यम से पूरा किया जा सकता:
var nums = new [] { 1,2,3,4,6,7,9,10};
int nextNewNum = (
from n in nums
where !nums.Select(nu => nu).Contains(n + 1)
orderby n
select n + 1
).First();
nextNewNum == 5
यह सीमा की शुरुआत से शुरू होने वाले किसी भी संगत ब्लॉक को याद करेगा। उदाहरण के लिए, यदि 'टेबल' में आईडी हैं (5,6,8,9,10) यह 7 लौटाएगा, 1-4 में से कोई भी नहीं। – joshperry
@joshperry आप सही हैं। मैंने सभी आईडी को शून्य से अधिक भरने के बारे में टिप्पणी को याद किया। मैंने एक बदसूरत फिक्स जोड़ा। शायद कोई सुधार का सुझाव देगा। –
+1 बहुत उपयोगी, धन्यवाद! यहां के अधिकांश अन्य उत्तरों "आपको ऐसा करने की आवश्यकता नहीं है, सिस्टम को कुंजी बढ़ाना चाहिए," लेकिन मेरा मामला प्राथमिक कुंजी के लिए नहीं है बल्कि इसके बजाय एक और अद्वितीय संख्यात्मक क्षेत्र है जहां रिक्त स्लॉट एक समस्या है लेकिन कर सकते हैं एक डिलीट के परिणामस्वरूप होता है, न कि होता है। –