मैं SQL सर्वर में एक दृश्य बनाना चाहता हूं जो डेटाबेस मेटाडेटा के कई टुकड़ों को जोड़ती है। मेटाडाटा केकिसी TSQL व्यू (pivot?) में डेटा की पंक्तियों से स्ट्रिंग कॉन्सटेनेशन निष्पादित करना
एक टुकड़ा मैं sys.syscomments
तालिका में जीवन चाहते हैं - प्रासंगिक कॉलम इस प्रकार हैं:
id colid text
---- ------ -------------
1001 1 A comment.
1002 1 This is a lo
1002 2 ng comment.
1003 1 This is an e
1003 2 ven longer c
1003 3 omment!
आप "पाठ" स्तंभ में डेटा देख सकते हैं कई पंक्तियों में विभाजित है अगर यह गुजरता अधिकतम लंबाई (SQL सर्वर में 8000 बाइट्स/4000 वर्ण, मेरे उदाहरण में 12 वर्ण)। colid
ऑर्डर की पहचान करता है जिसमें पाठ को एकसाथ इकट्ठा करना है।
मैं मेरे विचार sys.syscomments तालिका से टिप्पणी को पुनः एकत्रित करने में क्वेरी/सबक्वेरी बनाने के लिए, ताकि मैं करना चाहते हैं:
id comment (nvarchar(max))
---- ----------------------------------
1001 A comment.
1002 This is a long comment.
1003 This is an even longer comment!
कोई सुझाव या समाधान? गति किसी भी तरह से महत्वपूर्ण नहीं है, लेकिन सादगी और कम प्रभाव है (मैं सीएलआर कार्यों से बचना चाहता हूं और जैसा कि आदर्श रूप से पूरी चीज दृश्य परिभाषा में लपेटा जाएगा)। मैंने कुछ एक्सएमएल आधारित सुझावों को देखा है, लेकिन परिणामों ने एक्सएमएल एस्केप स्ट्रिंग से भरा टेक्स्ट बनाया है।
प्रश्न में उल्लेख किया है, मैं पहले से ही इस मार्ग नीचे चले गए हैं। नतीजा यह है कि तार्किक तुलना ऑपरेटर से नई लाइनों तक सबकुछ के लिए XMl एस्केप अनुक्रमों के साथ छेड़छाड़ की गई पाठ है। यह खराब उत्पादन आगे के संचालन जैसे कि LIKE खोजों के लिए उपयुक्त नहीं है। – David
'@ डेविड': पोस्ट अपडेट देखें। – Quassnoi
धन्यवाद। यह बहुत उपयोगी था। – David