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,'');
Zaktualizowałem Twój SQLFiddle z rozwiązaniem.
-
STUFF() funkcja usuwania początkowego
','
(przecinek) od pierwszej cechy. -
DLA XML aby utworzyć dokument XML z wyniku zapytania. Jest to dobrze znana sztuczka w SQL Server - ponieważ kolumna nie jest nazwana, nie jest wytwarzany żaden element i tylko surowy tekst (każdy wiersz) jest wyprowadzany, połączony w jeden wiersz.
Bardzo niewiele artykułów w Internecie próbuje wyjaśnić to szczegółowo, ponieważ kod pozostaje w zasadzie wyjaśnieniem samym w sobie.