त्रुटि इसलिए होती है क्योंकि आपके पास SQL सर्वर में एक पंक्ति नहीं हो सकती है जो 8KB (1 पृष्ठ का आकार) से बड़ी है क्योंकि पंक्तियों को पृष्ठों को फैलाने की अनुमति नहीं है - यह SQL सर्वर की एक मूल सीमा है, आप इसके बारे में यहाँ अधिक पढ़ सकते हैं:
ध्यान दें कि SQL सर्वर आपको तालिका बनाने की अनुमति देगा, हालाँकि यदि आप वास्तव में कोई डेटा सम्मिलित करने का प्रयास करते हैं जो कई पृष्ठों तक फैला है तो यह उपरोक्त त्रुटि देगा।
बेशक यह काफी जोड़ नहीं है, क्योंकि अगर उपरोक्त पूरी सच्चाई थी तो सिंगल VARCHAR(8000)
कॉलम एक तालिका में एक पंक्ति भर देगा! (यह मामला हुआ करता था)। SQL सर्वर 2005 एक पंक्ति से कुछ डेटा को किसी अन्य पृष्ठ में संग्रहीत करने की अनुमति देकर, और इसके बजाय 24-बाइट सूचक को छोड़कर इस सीमा के आसपास हो गया। आप इसके बारे में यहां पढ़ सकते हैं:
- कैसे Sql Server 2005 8KB पंक्ति को बायपास करता है आकार सीमा
- SQL सर्वर 2005 में अधिकतम पंक्ति आकार सीमा तकए>
जैसा कि आप अब देख सकते हैं कि पंक्तियों में अब कई पृष्ठ हो सकते हैं, हालांकि एकल स्तंभ पंक्तियों को अभी भी एक पृष्ठ में फ़िट होने की आवश्यकता है (इसलिए एक स्तंभ का अधिकतम आकार VARCHAR(8000)
है ) और आपके पास ऐसे स्तंभों की कुल संख्या की अभी भी एक सीमा है (मेरे अनुमान के अनुसार लगभग 8000/24 =~300)
बेशक यह सब मुख्य बिंदु गायब है, जो यह है कि एक ही टेबल पर 400 चौड़े कॉलम बेतुके हैं!!!
आपको अपने डेटाबेस स्कीमा पर एक लंबी कड़ी नज़र रखनी चाहिए और कुछ और उचित के साथ आना चाहिए - आप कॉलम आकार (जैसे VARCHAR(255)
पर कुछ और रूढ़िवादी अनुमानों को चुनने के साथ शुरू कर सकते हैं। या VARCHAR(50)
), लेकिन आपको वास्तव में उन कुछ क्षेत्रों को अलग-अलग तालिकाओं में विभाजित करने की आवश्यकता है।