TEXTस्ट्रिंग डेटा के बड़े टुकड़ों के लिए उपयोग किया जाता है। यदि फ़ील्ड की लंबाई एक निश्चित सीमा से अधिक है, तो पाठ पंक्ति से बाहर संग्रहीत किया जाता है।
VARCHARहमेशा पंक्ति में संग्रहीत किया जाता है और इसमें 8000 वर्णों की सीमा होती है । यदि आप एक बनाने की कोशिश करते हैं VARCHAR(x), जहाँ x> 8000 , आपको एक त्रुटि मिलती है:
सर्वर: Msg 131, स्तर 15, राज्य 3, पंक्ति 1
किसी भी प्रकार के डेटा प्रकार (8000) के लिए अनुमत आकार () 'varchar' को दिए गए अधिकतम से अधिक है
SQL सर्वर 2005VARCHAR(MAX) में इन लंबाई सीमाओं की चिंता नहीं है , जो पंक्तिबद्ध तरीके से संग्रहीत की जा सकती हैंTEXT ।
ध्यान दें कि MAXयहाँ एक प्रकार का स्थिरांक नहीं है, VARCHARऔर VARCHAR(MAX)बहुत भिन्न प्रकार के हैं, बाद वाले बहुत करीब हैं TEXT।
SQL सर्वर के पूर्व संस्करणों में आप TEXTसीधे पहुंच नहीं सकते थे , आप केवल एक प्राप्त कर सकते हैं TEXTPTRऔर इसे READTEXTऔर WRITETEXTकार्यों में उपयोग कर सकते हैं ।
में SQL सर्वर 2005 आप कर सकते हैं सीधे पहुँच TEXTकॉलम (यदि आप अभी भी करने के लिए एक स्पष्ट कलाकारों की जरूरत है, हालांकि VARCHARउनके लिए एक मूल्य निर्दिष्ट)।
TEXT अच्छा है:
- यदि आपको अपने डेटाबेस में बड़े ग्रंथों को संग्रहीत करने की आवश्यकता है
- यदि आप कॉलम के मूल्य पर खोज नहीं करते हैं
- यदि आप इस कॉलम को शायद ही कभी चुनते हैं और इस पर शामिल नहीं होते हैं।
VARCHAR अच्छा है:
- यदि आप छोटे तार संग्रहीत करते हैं
- यदि आप स्ट्रिंग मान पर खोज करते हैं
- यदि आप हमेशा इसका चयन करते हैं या इसे जॉइन करते हैं।
तक का चयन यहां मैं किसी भी प्रश्न है कि स्तंभ का मान जारी करने का अर्थ यह।
द्वारा खोज यहाँ मैं किसी भी प्रश्न जिसका परिणाम के मूल्य पर निर्भर करता है जारी करने का अर्थ यह TEXTया VARCHARस्तंभ। यह किसी भी में इसका उपयोग करने में शामिल हैं JOINया WHEREशर्त।
के रूप TEXTमें पंक्ति से बाहर संग्रहीत किया जाता है, TEXTकॉलम को शामिल नहीं करने वाले प्रश्न आमतौर पर तेज होते हैं।
क्या TEXTअच्छा है के कुछ उदाहरण :
- ब्लॉग टिप्पणियाँ
- विकी पेज
- कोड स्रोत
क्या VARCHARअच्छा है के कुछ उदाहरण :
- उपयोगकर्ताओं के नाम
- पृष्ठ शीर्षक
- फ़ाइल नाम
अंगूठे के एक नियम के रूप में, यदि आपको कभी 200 अक्षरों से अधिक के पाठ मूल्य की आवश्यकता होती है और इस कॉलम में शामिल नहीं होते हैं, तो उपयोग करें TEXT।
अन्यथा उपयोग करें VARCHAR।
PS वही UNICODEसक्षम NTEXTऔर NVARCHARसाथ ही लागू होता है , जिसे आपको ऊपर के उदाहरणों के लिए उपयोग करना चाहिए।
PPS वही लागू होता है VARCHAR(MAX)और NVARCHAR(MAX)जो SQL Server 2005+ के बजाय उपयोग करता है TEXTऔर NTEXT। यदि आप उन्हें हमेशा पंक्ति से बाहर रखना चाहते हैं, तो आपको large value types out of rowउनके लिए सक्षम करने की आवश्यकता होगी sp_tableoption।
ऊपर और उल्लेख किया है यहाँ , TEXTआगामी रिलीज़ में पदावनत किया जा रहा है:
text in rowविकल्प के भविष्य के संस्करण में हटा दिया जाएगा एसक्यूएल सर्वर । नए विकास कार्य में इस विकल्प का उपयोग करने से बचें, और वर्तमान में उपयोग होने वाले अनुप्रयोगों को संशोधित करने की योजना बनाएं text in row। हमारा सुझाव है कि आप का उपयोग करके बड़ा डेटा संगृहीत varchar(max), nvarchar(max)या varbinary(max)डेटा प्रकार। इन डेटा प्रकारों के इन-रो और आउट-ऑफ-लाइन व्यवहार को नियंत्रित करने के लिए, large value types out of rowविकल्प का उपयोग करें ।