2012-05-11 13 views
8

में प्राथमिक कुंजी होने की अनुमति नहीं है Varchar (max) कॉलम SQL सर्वर में प्राथमिक कुंजी होने की अनुमति नहीं है।वक्रार (अधिकतम) कॉलम को SQL सर्वर

एक वर्चर प्रकार की अधिकतम लंबाई क्या है जिसे प्राथमिक कुंजी बनाया जा सकता है।

यह एक बुरा अभ्यास हो सकता है, लेकिन स्थिति में आया।

+3

आपके पास आईडी कॉलम क्यों नहीं है? –

+0

आप उन क्षेत्रों को छोड़कर वर्कर (अधिकतम) का उपयोग नहीं कर रहे हैं जिन्हें आप 8000 वर्णों से अधिक होने की उम्मीद करते हैं? इंडेक्सिंग मुद्दों के कारण यदि आपके पास प्रदर्शन समस्याएं होंगी। – HLGEM

उत्तर

16

900 बाइट प्राथमिक कुंजी के लिए अधिकतम लंबाई है, यह मेरी राय में एक बुरा विचार है, आप इसके बजाय सरोगेट कुंजी का उपयोग क्यों नहीं करते?

4

इस प्रश्न का उत्तर पहले से ही दिया गया है in this thread; संक्षिप्त जवाब यह है कि एक सूचकांक क्षेत्र 900 बाइट्स से अधिक नहीं हो सकता है। उस ने कहा, आमतौर पर दक्षता और रखरखाव जैसे असंख्य कारणों के लिए एक सूचकांक के रूप में लंबे VARCHAR फ़ील्ड का उपयोग करना एक बुरा विचार है।

3

पंक्तियों की पहचान करने के लिए प्राथमिक कुंजी का उपयोग अन्य सभी इंडेक्स में किया जाता है। एक कुंजी के रूप में संभावित बहु-मेगाबाइट मान होने से बहुत कम समझ होती है, इसलिए सामान्य रूप से सीमा किसी भी कुंजी में कुल बाइट्स पर होती है।