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,'');
Jag har uppdaterat din SQLFiddle med lösningen.
-
STUFF() funktion för att ta bort den inledande
','
(komma) från den första egenskapen. -
FÖR XML för att skapa ett XML-dokument från ett frågeresultat. Detta är ett välkänt knep med SQL Server - eftersom kolumnen inte är namngiven, det skapas inget element och endast den råa texten (för varje rad) matas ut, blandad till en enda rad.
Väldigt få artiklar på internet försöker förklara det i detalj, eftersom koden i stort sett lämnas som en förklaring i sig.