प्रश्न १: come००० अक्षर कैसे निभाते हैं और मुझे इसकी जानकारी कहाँ होनी चाहिए?
N को 8000 में सेट करने से 8000 अक्षर खेलने में आते हैं। आपको चार, नर्चर, नवरचेयर और वर्चर के बारे में सटीक, स्केल और लंबाई (लेन-देन-एसक्यूएल) संदर्भों के बारे में पता होना चाहिए । इसके विपरीत, n से अधिकतम (कोई उद्धरण नहीं) सेट करने से SQL सर्वर स्टोर हो जाता है (और वापस आ जाता है) बाइट्स की अधिकतम संख्या (जैसा कि आपके उद्धरण में वर्णित है)।
प्रश्न 2: क्या इस कॉलम में .net डेटरीडर क्वेरी हमेशा 100 000+ वर्ण के साथ पूर्ण परिणाम देगा?
यह एक .Net (SQL सर्वर नहीं) प्रश्न है, लेकिन .Net डेटाट्रेडर बाइट्स की एक धारा प्राप्त करता है। एक बाइट एक वर्ण नहीं है, और SQL सर्वर बाइट्स (वर्ण नहीं) देता है। यदि n को 8000 पर सेट किया गया है और डेटा प्रकार nvarchar है, तो SQL Server 8000 बाइट्स तक लौटता है, जो .Net डेटाट्रेडर 4000 यूनिकोड वर्णों की व्याख्या कर सकता है। यदि n 8000 पर सेट है और डेटा प्रकार varchar है, तो SQL Server 8000 बाइट्स तक लौटता है, जो .Net डेटाट्रेडर 8000 ANSI वर्णों की व्याख्या कर सकता है। यदि n अधिकतम पर सेट है और डेटा प्रकार nvarchar है, तो SQL Server 2 ^ 31-1 बाइट्स तक वापस आ जाता है, जिसे .Net डेटारीडर अप करने के लिए (2 ^ 31-1) / 2 वर्णों तक व्याख्या कर सकता है। यदि n अधिकतम पर सेट है और डेटा प्रकार varchar है, तो SQL Server 2 ^ 31-1 बाइट्स तक लौटता है, जो .Net डेटाट्रेडर 2 ^ 31-1 ANSI वर्णों तक की व्याख्या कर सकता है।
यदि आप चार या वर्चर (nchar या nvarchar के बजाय) का उपयोग करते हैं, क्योंकि वे अधिक "वर्ण" (अधिक सटीक: बाइट्स) संग्रहीत कर सकते हैं, तो आपको यह जानना होगा कि कई यूनिकोड वर्णों में कोई समान ANSI वर्ण नहीं है (इस प्रकार हमारा एक बड़ा भाग) दुनिया के उपयोगकर्ता आपके ऐप में अपने स्थानीयकृत / मूल वर्णों को देखने में असमर्थ होंगे)।
varchar(max)
एक बार बुलायाtext
गया था और एक अलग डेटा प्रकार के रूप में व्यवहार किया गया था।