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 Server - тъй като колоната не е наименувана, няма произведен елемент и се извежда само необработеният текст (на всеки ред), смесен заедно в един ред.
Много малко статии в интернет се опитват да го обяснят в детайли, тъй като кодът до голяма степен е оставен като обяснение сам по себе си.