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,'');
Ich habe Ihr SQLFiddle aktualisiert mit der Lösung.
-
STUFF() Funktion zum Entfernen des führenden
','
(Komma) vom ersten Merkmal. -
FÜR XML um ein XML-Dokument aus einem Abfrageergebnis zu erstellen. Dies ist ein bekannter Trick bei SQL Server – da die Spalte nicht benannt ist, wird kein Element erzeugt und nur der Rohtext (jeder Zeile) wird ausgegeben, zusammengefügt zu einer einzigen Zeile.
Sehr wenige Artikel im Internet versuchen, es im Detail zu erklären, da der Code so ziemlich als Erklärung an und für sich selbst übrig bleibt.