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
विकल्प का उपयोग करें ।