• You could update the table creation to get the datatype of temporary table directly from the source instead of the hard-coded types/sizes.  This would  be easily done with:

    SELECT RowText, ColumnText, Value FROM Source WHERE 1=0 INTO #Aggregates

    Which works because the 1=0 clause insures no rows are matched, but the datatypes are set according to the soruce...