SSMS केवल XML डेटा के लिए असीमित डेटा की अनुमति देता है। यह डिफ़ॉल्ट नहीं है और इसे विकल्पों में सेट करने की आवश्यकता है।
एक तरकीब जो काफी सीमित परिस्थितियों में काम कर सकती है, वह है नीचे दिए गए विशेष तरीके से कॉलम का नामकरण करना ताकि इसे XML डेटा के रूप में माना जाए।
DECLARE @S varchar(max) = 'A'
SET @S = REPLICATE(@S,100000) + 'B'
SELECT @S as [XML_F52E2B61-18A1-11d1-B105-00805F49916B]
SSMS में (कम से कम संस्करण 2012 से वर्तमान 18.3 तक) यह परिणाम नीचे के रूप में प्रदर्शित करता है
इस पर क्लिक करने से एक्सएमएल व्यूअर में पूरा रिजल्ट खुल जाता है। दाईं ओर स्क्रॉल करने से पता चलता है कि B का अंतिम वर्ण संरक्षित है,
हालांकि इसमें कुछ महत्वपूर्ण समस्याएं हैं। क्वेरी में अतिरिक्त कॉलम जोड़ने से प्रभाव टूट जाता है और अतिरिक्त पंक्तियाँ सभी पहले वाले के साथ जुड़ जाती हैं। अंत में यदि स्ट्रिंग में <
. जैसे वर्ण हैं XML व्यूअर को खोलना एक पार्सिंग त्रुटि के साथ विफल हो जाता है।
ऐसा करने का एक अधिक मजबूत तरीका जो SQL सर्वर को <
में कनवर्ट करने की समस्याओं से बचा जाता है करने के लिए <
आदि या इन पात्रों के कारण असफल होना नीचे है (क्रेडिट एडम मैकैनिक यहाँ)।
DECLARE @S varchar(max)
SELECT @S = ''
SELECT @S = @S + '
' + OBJECT_DEFINITION(OBJECT_ID) FROM SYS.PROCEDURES
SELECT @S AS [processing-instruction(x)] FOR XML PATH('')