- Declare two variables like below
 
--Declare Variable 
DECLARE @Pivot_Column [nvarchar](max); 
DECLARE @Query [nvarchar](max); 
	- Select comma-separated dynamic column.
 
 --Select Pivot Column
SELECT @Pivot_Column= COALESCE(@Pivot_Column+',','')+ QUOTENAME(BreakupName) FROM 
                    (SELECT DISTINCT SB.BreakupName FROM [Pay].[SalaryDetails] SD
                    JOIN [Pay].[SalaryBreakUp] SB ON SD.BreakupID=SB.BreakupID)Tab 
	- Create dynamic query and use selected @Pivot_Column in selection.
 
--Create Dynamic Query
SELECT @Query='SELECT EmployeeID, '+@Pivot_Column+' FROM   
                    (SELECT SD.EmployeeID, SB.BreakupName , SD.BreakupAmount FROM [Pay].[SalaryDetails] SD
                    JOIN [Pay].[SalaryBreakUp] SB ON SD.BreakupID=SB.BreakupID )Tab1 
                    PIVOT 
                    ( 
                    SUM(BreakupAmount) FOR [BreakupName] IN ('+@Pivot_Column+')) AS Tab2 
                    ORDER BY Tab2.EmployeeID'
 --Execute Query
 EXEC  sp_executesql  @Query