Ti manca uno spazio tra PivotData
e PIVOT
.
SET @query = @query +
' PIVOT (MAX(VALUE) FOR [NAME] IN (' + @columns + ')) AS p'
// ^--- HERE
Di conseguenza, il parser SQL interpreta PivotDataPIVOT
come un unico identificatore, con conseguente errore di sintassi in seguito.