update parent
set longtext =
stuff((
select ',' + c.char + ': ' + c.val
from child c
where c.uid = parent.uid
for xml path(''), type).value('.','nvarchar(max)'),1,1,'');
मैंने आपके SQLFiddle को अपडेट कर दिया है समाधान के साथ।
-
STUFF() प्रमुख
','
. को हटाने के लिए कार्य करता है (अल्पविराम) पहली विशेषता से। -
XML के लिए किसी क्वेरी परिणाम से XML दस्तावेज़ बनाने के लिए। यह SQL सर्वर के साथ एक प्रसिद्ध चाल है - क्योंकि कॉलम का नाम नहीं है, कोई तत्व उत्पन्न नहीं होता है और केवल कच्चा टेक्स्ट (प्रत्येक पंक्ति का) आउटपुट होता है, एक पंक्ति में एक साथ मैश किया जाता है।
इंटरनेट पर बहुत कम लेख इसे विस्तार से समझाने का प्रयास करते हैं, क्योंकि कोड अपने आप में एक स्पष्टीकरण के रूप में बहुत अधिक बचा है।