मेरे पास विरासत T-SQL
कोड का बहुत अधिक (हजारों स्थानों पर) कोड है जो केवल INSERT
को उपयोगिता तालिका में varchar(8000)
कॉलम में बनाता है। हमारी ज़रूरतें बदल गई हैं और अब उस कॉलम को बड़े मूल्यों को संभालने में सक्षम होना चाहिए। नतीजतन मुझे उस कॉलम को varchar(max)
बनाना होगा। यह केवल एक सादा डेटा कॉलम है जहां इसकी कोई पूर्व खोज नहीं है, उस पर कोई अनुक्रमणिका नहीं है, केवल एक प्रक्रिया इसे पढ़ती है, यह INSERT
है और एप्लिकेशन (लगभग लॉग प्रविष्टि की तरह) भूल जाती है।वर्चर (8000) से वर्चर (अधिकतम) तक कॉलम बदलने वाले किसी छिपे हुए नुकसान?
मैं केवल कुछ स्थानों में परिवर्तन करने की योजना बना रहा हूं जो वास्तव में बड़े डेटा उत्पन्न करेंगे, और एक ही संग्रहित प्रक्रिया में जो इस कॉलम को संसाधित करता है।
- क्या
varchar(8000)
सेvarchar(max)
पर कोई कॉलम बदलने वाले कोई छिपे हुए नुकसान हैं? - सभी
T-SQL
स्ट्रिंग कार्यों काम करेगा ही,LEN()
,RTRIM()
,SUBSTRING()
, आदि - किसी को भी किसी भी कारण है कि मैं कोड है कि सोचता है कि स्तंभ अभी भी
varchar(8000)
है कोई भी परिवर्तन करने के लिए होगा कल्पना कर सकते हैं?
आप एक पाठ स्तंभ के लिए स्विच क्यों नहीं है? – Maz
@ मैक्स ऐसी चीजें हैं जो आप टेक्स्ट कॉलम पर नहीं कर सकते हैं, जो कि आप VARCHAR (MAX) (जैसे DISTINCT क्वेरी) पर कर सकते हैं –
aggregrate फ़ंक्शन और टेक्स्ट कॉलम बहुत अच्छी तरह से नहीं जाते हैं ... – riffnl