Du måste CAST alla nummer till nvarchar i sammanlänkningen.
Det finns ingen implicit konvertering av VBA-stil till sträng. I SQL Server betyder datatypsprioritet att ints är högre än nvarchar:så hela strängen försöker CAST till int.
SET @SQL = 'SELECT ' + @GName + ' AS GrName ,' + @BR
+ CAST(@T_ID AS nvarchar(10)) + ' AS To_ID ,' ...
Edit:Will A har en bra poäng:se upp för NULLs!