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,'');
He actualizado su SQLFiddle con la solución.
-
STUFF() función para eliminar el
','
inicial (coma) de la primera característica. -
PARA XML para crear un documento XML a partir de un resultado de consulta. Este es un truco bien conocido con SQL Server:debido a que la columna no tiene nombre, no se produce ningún elemento y solo se genera el texto sin procesar (de cada fila), combinado en una sola fila.
Muy pocos artículos en Internet intentan explicarlo en detalle, ya que el código se deja prácticamente como una explicación en sí mismo.