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,'');
Aktualizoval jsem váš SQLFiddle s řešením.
-
STUFF() funkce k odstranění úvodního
','
(čárka) od první charakteristiky. -
PRO XML k vytvoření dokumentu XML z výsledku dotazu. Toto je dobře známý trik s SQL Serverem - protože sloupec není pojmenován, nevytváří se žádný prvek a na výstup je pouze surový text (každého řádku) smíchaný do jednoho řádku.
Velmi málo článků na internetu se to pokouší podrobně vysvětlit, protože kód je do značné míry ponechán jako vysvětlení sám o sobě.