Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Erro de SQL dinâmico ao converter nvarchar para int


Você precisa CAST todos os números para nvarchar na concatenação.

Não há conversão implícita de estilo VBA para string. No SQL Server, a precedência do tipo de dados significa que os ints são maiores que nvarchar:portanto, toda a string está tentando ser CAST para int.
SET @SQL =  'SELECT ' + @GName + ' AS GrName ,' + @BR
              + CAST(@T_ID AS nvarchar(10)) + ' AS To_ID ,' ...

Edit:Will A tem um bom ponto:observe os NULLs!