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,'');
Jeg har opdateret din SQLFiddle med løsningen.
-
STUFF() funktion for at fjerne den indledende
','
(komma) fra den første karakteristik. -
FOR XML at oprette et XML-dokument ud fra et forespørgselsresultat. Dette er et velkendt trick med SQL Server - fordi kolonnen ikke er navngivet, er der intet element produceret, og kun den rå tekst (af hver række) udlæses, maset sammen til en enkelt række.
Meget få artikler på internettet forsøger at forklare det i detaljer, da koden stort set er efterladt som en forklaring i sig selv.