V zřetězení musíte všechna čísla přenést na nvarchar.
Neexistuje žádná implicitní konverze stylu VBA na řetězec. V SQL Server priorita datového typu znamená, že ints jsou vyšší než nvarchar:takže celý řetězec se snaží být CAST na int.
SET @SQL = 'SELECT ' + @GName + ' AS GrName ,' + @BR
+ CAST(@T_ID AS nvarchar(10)) + ' AS To_ID ,' ...
Edit:Will A má dobrý postřeh:pozor na NULL!