Por que o SQL Server ignora vaules na concatenação de strings quando a cláusula ORDER BY especifica

Tenho a seguinte tabela

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

Eu preciso reunir todos os comentários na string única

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

Sem encomendar, ele funciona como o esperado e retorne todos os comentários. Mas depois de executar o código a seguir, ondeORDENAR PO cláusula @ é adicionada:

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

Retorne apenas o último comentário. Alguém sabe por que ORDER BY leva a um resultado estranho na concatenação?

PS: Funciona bem seFOR XML cláusula usada em vez de concatenaçãoxiste uma maneira de criar uma função do SQL Server para "ingressar" em várias linhas de uma subconsulta em um único campo delimitad.

questionAnswers(1)

yourAnswerToTheQuestion