Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

मैं SQL सर्वर 2008 प्रबंधन स्टूडियो में टेक्स्ट या वर्कर (MAX) कॉलम की पूरी सामग्री कैसे देखूं?

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('')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर में किसी तालिका की सभी निर्भरताओं को कैसे खोजें

  2. Microsoft SQL सर्वर में केवल दिनांक का उपयोग करके DATETIME फ़ील्ड को कैसे क्वेरी करें?

  3. कनेक्शन बंद होने पर एक अनकमिटेड ट्रांजैक्शन का क्या होता है?

  4. मैं JDBC ड्राइवर के साथ एकीकृत सुरक्षा का उपयोग करके SQL सर्वर से कैसे जुड़ सकता हूँ?

  5. सिक्योर द्वारा SQL इंजेक्शन अटैक को कैसे रोकें