Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

8937 आकार की एक पंक्ति नहीं बना सकते जो स्वीकार्य अधिकतम 8060 . से अधिक है

त्रुटि इसलिए होती है क्योंकि आपके पास SQL ​​​​सर्वर में एक पंक्ति नहीं हो सकती है जो 8KB (1 पृष्ठ का आकार) से बड़ी है क्योंकि पंक्तियों को पृष्ठों को फैलाने की अनुमति नहीं है - यह SQL सर्वर की एक मूल सीमा है, आप इसके बारे में यहाँ अधिक पढ़ सकते हैं:

ध्यान दें कि SQL सर्वर आपको तालिका बनाने की अनुमति देगा, हालाँकि यदि आप वास्तव में कोई डेटा सम्मिलित करने का प्रयास करते हैं जो कई पृष्ठों तक फैला है तो यह उपरोक्त त्रुटि देगा।

बेशक यह काफी जोड़ नहीं है, क्योंकि अगर उपरोक्त पूरी सच्चाई थी तो सिंगल VARCHAR(8000) कॉलम एक तालिका में एक पंक्ति भर देगा! (यह मामला हुआ करता था)। SQL सर्वर 2005 एक पंक्ति से कुछ डेटा को किसी अन्य पृष्ठ में संग्रहीत करने की अनुमति देकर, और इसके बजाय 24-बाइट सूचक को छोड़कर इस सीमा के आसपास हो गया। आप इसके बारे में यहां पढ़ सकते हैं:

जैसा कि आप अब देख सकते हैं कि पंक्तियों में अब कई पृष्ठ हो सकते हैं, हालांकि एकल स्तंभ पंक्तियों को अभी भी एक पृष्ठ में फ़िट होने की आवश्यकता है (इसलिए एक स्तंभ का अधिकतम आकार VARCHAR(8000) है ) और आपके पास ऐसे स्तंभों की कुल संख्या की अभी भी एक सीमा है (मेरे अनुमान के अनुसार लगभग 8000/24 ​​=~300)

बेशक यह सब मुख्य बिंदु गायब है, जो यह है कि एक ही टेबल पर 400 चौड़े कॉलम बेतुके हैं!!!

आपको अपने डेटाबेस स्कीमा पर एक लंबी कड़ी नज़र रखनी चाहिए और कुछ और उचित के साथ आना चाहिए - आप कॉलम आकार (जैसे VARCHAR(255) पर कुछ और रूढ़िवादी अनुमानों को चुनने के साथ शुरू कर सकते हैं। या VARCHAR(50) ), लेकिन आपको वास्तव में उन कुछ क्षेत्रों को अलग-अलग तालिकाओं में विभाजित करने की आवश्यकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर जॉइन लापता NULL मान

  2. SQL सर्वर स्कीमा ऑडिटिंग?

  3. SQL सर्वर त्रुटि 7222:"इस उदाहरण पर केवल एक SQL सर्वर प्रदाता की अनुमति है"

  4. EF4 - चयनित संग्रहीत कार्यविधि कोई कॉलम नहीं लौटाती है

  5. SQL सर्वर:टाइमस्टैम्प कॉलम में एक स्पष्ट मान सम्मिलित नहीं कर सकता