Du mangler et mellemrum mellem PivotData
og PIVOT
.
SET @query = @query +
' PIVOT (MAX(VALUE) FOR [NAME] IN (' + @columns + ')) AS p'
// ^--- HERE
Som et resultat fortolker SQL-parseren PivotDataPIVOT
som en enkelt identifikator, hvilket resulterer i en syntaksfejl senere.