Por qué SQL Server ignora vaules en la concatenación de cadenas cuando se especifica la cláusula ORDER BY

Tengo la siguiente tabla

Created    Comment
2010/10/10 Text1 
2010/11/11 Text2
2010/12/12 Text3

Necesito reunir todos los comentarios en una sola cadena

SELECT  @Comment = COALESCE(@Comment, '')
   + CHAR(13) + CHAR(10) + CONVERT(NVARCHAR(30), [dbo].[Comment].[Created], 101) + ': ' + ISNULL([Comment].[Text], '')
    FROM Comment

Sin ordenarlo, funciona como se esperaba y devuelve todos los comentarios. Pero después de ejecutar el siguiente código dondeORDER BYe agrega la cláusula @:

SELECT  @Comment = COALESCE(@Comment, '')
   + CHAR(13) + CHAR(10) + CONVERT(NVARCHAR(30), [Created], 101) + ': ' + ISNULL([Text], '')
    FROM Comment
  ORDER BY Created

Return solo el último comentario. ¿Alguien sabe por qué ORDER BY conduce al extraño resultado de la concatenación?

PS: Funciona bien siFOR XML cláusula utilizada en lugar de concatenación ¿Hay alguna forma de crear una función de SQL Server para "unir" varias filas de una subconsulta en un solo campo delimitado?.

Respuestas a la pregunta(1)

Su respuesta a la pregunta