sql >> Base de Datos >  >> RDS >> Sqlserver

Error de SQL dinámico al convertir nvarchar a int

Debe CAST todos los números a nvarchar en la concatenación.

No hay conversión implícita de estilo VBA a cadena. En SQL Server, la precedencia del tipo de datos significa que los ints son más altos que nvarchar:por lo que toda la cadena está tratando de CAST a int.

SET @SQL =  'SELECT ' + @GName + ' AS GrName ,' + @BR
              + CAST(@T_ID AS nvarchar(10)) + ' AS To_ID ,' ...

Editar:Will A tiene un buen punto:¡cuidado con los NULL!