SQL सर्वर 2000 और SQL सर्वर 7 में, एक पंक्ति आकार में 8000 बाइट से अधिक नहीं हो सकती है। इसका अर्थ यह है कि एक वर्बिनरी कॉलम केवल 8000 बाइट्स को स्टोर कर सकता है (माना जाता है कि यह तालिका में एकमात्र कॉलम है), एक वर्चर कॉलम 8000 वर्णों तक स्टोर कर सकता है और एक एनवीएआरएआरएआर कॉलम 4000 वर्ण (प्रति यूनिकोड प्रति 2 बाइट्स) तक स्टोर कर सकता है। डिस्क पर डेटा को सहेजने के लिए यह सीमा 8 KB आंतरिक पृष्ठ आकार SQL सर्वर का उपयोग करता है।
एक ही कॉलम में अधिक डेटा स्टोर करने के लिए, आपको टेक्स्ट, एनआईआर, या छवि डेटा प्रकार (बीएलओबी) का उपयोग करने की आवश्यकता है जो 8 केबी डेटा पृष्ठों के संग्रह में संग्रहीत हैं जो डेटा पेजों से अलग हैं जो स्टोर करते हैं एक ही टेबल में अन्य डेटा। इन डेटा पृष्ठों को बी-पेड़ संरचना में व्यवस्थित किया जाता है। बीएलओबी के साथ काम करना और कुशलतापूर्वक काम करना मुश्किल है। उन्हें किसी प्रक्रिया या फ़ंक्शन में चर के रूप में उपयोग नहीं किया जा सकता है और इन्हें स्ट्रिप फ़ंक्शन जैसे रीप्लेस, CHARINDEX या SUBSTRING के अंदर उपयोग नहीं किया जा सकता है। ज्यादातर मामलों में, आपको BLOBs में हेरफेर करने के लिए READTEXT, WRITETEXT, और UPDATETEXT आदेशों का उपयोग करना होगा।
इस समस्या को हल करने के लिए, माइक्रोसॉफ्ट ने SQL Server 2005 में VARCHAR (MAX), NVARCHAR (MAX), और VARBINARY (MAX) डेटा प्रकारों को प्रस्तुत किया। इन डेटा प्रकारों में समान मात्रा में डेटा हो सकता है BLOBs (2 जीबी) और वे अन्य डेटा प्रकारों के लिए उपयोग किए जाने वाले उसी प्रकार के डेटा पृष्ठों में संग्रहीत होते हैं। जब MAX डेटा प्रकार में डेटा 8 KB से अधिक हो जाता है, तो ओवर-फ्लो पेज का उपयोग किया जाता है। SQL सर्वर 2005 स्वचालित रूप से पृष्ठ पर एक ओवर-फ्लो संकेतक असाइन करता है और जानता है कि डेटा पंक्तियों को उसी तरीके से कैसे उपयोग किया जाए, वैसे ही यह अन्य डेटा प्रकारों में हेरफेर करता है। आप संग्रहित प्रक्रिया या फ़ंक्शन के अंदर MAX डेटा प्रकारों के चर घोषित कर सकते हैं और उन्हें चर के रूप में भी पास कर सकते हैं। आप स्ट्रिंग फ़ंक्शंस के अंदर भी उनका उपयोग कर सकते हैं।
माइक्रोसॉफ्ट एसक्यूएल सर्वर 2005 में बीएलओबी के बजाय MAX डेटा प्रकारों का उपयोग करने की सलाह देता है। असल में, बीएलओबी को SQL सर्वर के भावी रिलीज में बहिष्कृत किया जा रहा है।
क्रेडिट: http://www.teratrax.com/articles/varchar_max.html
एसक्यूएल सर्वर में और SQL सर्वर , VARCHAR (मैक्स) के लिए अधिकतम भंडारण आकार 2^31-1 बाइट (2,147,483,647 बाइट्स या 2GB है - 1 बाइट्स)। स्टोरेज आकार + 2 बाइट दर्ज किए गए डेटा की वास्तविक लंबाई है। दर्ज किया गया डेटा लंबाई में 0 वर्ण हो सकता है। चूंकि VARCHAR डेटा प्रकार में प्रत्येक वर्ण एक बाइट का उपयोग करता है, इसलिए VARCHAR (MAX) डेटा प्रकार की अधिकतम लंबाई 2,147,483,645 है। आप के लिए
पूर्ण दिलचस्प पढ़ने: http://www.sql-server-helper.com/faq/sql-server-2005-varchar-max-p01.aspx
संदर्भ: http://msdn.microsoft.com/en-us/library/ms143432.aspx
[मेरे उत्तर को एक और अंतर के लिए यहां देखें] (http://stackoverflow.com/questions/2009694/is-there-an-advantage-to-varchar500-over-varchar8000/5654947#5654947) और यह ब्लॉग पोस्ट [ Remus Rusanu द्वारा] (http: // rusanu।कॉम/2010/03/22/वर्च-तुलना-वर्चर्मैक्स-बनाम वर्चर्न /) –
लिंक को देखें: http://stackoverflow.com/q/28980502/1805776 – vicky