Musisz przesłać wszystkie liczby na nvarchar w konkatenacji.
Nie ma niejawnej konwersji stylu VBA na ciąg. W SQL Server pierwszeństwo typu danych oznacza, że ints są wyższe niż nvarchar:więc cały ciąg próbuje być CAST do int.
SET @SQL = 'SELECT ' + @GName + ' AS GrName ,' + @BR
+ CAST(@T_ID AS nvarchar(10)) + ' AS To_ID ,' ...
Edycja:Czy A ma dobrą rację:uważaj na NULL!